来自环境变量和文件的密钥
除了把密钥保存在数据库中,密钥库(Key Store)中的条目还可以在任务运行时从 Semaphore 服务器上的 文件,或从 Semaphore 服务器进程的环境变量中读取其值。 当凭据已经在 Semaphore 之外完成配置时,这非常有用,例如:
- 以 Docker 或 Kubernetes secret 的形式挂载到 Semaphore 容器中的 SSH 密钥;
- 由某个代理(HashiCorp Vault Agent、cert-manager 等)写入磁盘并定期轮换的令牌;
- 由编排器注入到容器环境中的密码。
Semaphore 不会把该值复制到自己的数据库中。每当任务需要该密钥时,服务器都会重新读取文件或变量, 因此在磁盘上轮换凭据后,下一个任务就会生效。
信息
文件或变量由 Semaphore 服务器读取,而不是由运行器(Runner)读取。使用远程运行器时, 请把文件挂载到服务器主机上;服务器解析密钥后再交给运行器。