是否有某种方法可以将非敏感数据存储在 Jenkins 的构建配置范围内,以便可以从管道脚本中读取?
我们正在迁移到新的 Octopus Deploy 服务器,我们的 Jenkinsfile 如下所示:
pipeline {
environment {
OCTOPUS_CLI_SERVER = "https://octopus.example.com"
OCTOPUS_CLI_API_KEY = credentials("Octopus_Deploy_ApiKey")
}
// ...
}
我可以通过 Jenkins 凭证管理器集中更新 API 密钥,但由于 URL 是硬编码的,因此我必须OCTOPUS_CLI_SERVER
在每个分支中编辑并提交更改。只要我要更改它,我就想知道是否有比硬编码新值更好的方法。
我可以将 Octopus 服务器 URL 存储在凭证管理器中并以相同的方式访问它,但随后其值将从日志中删除,这可能会很烦人。理想情况下,我所寻找的内容可能对多个项目有不同的值。例如,项目 A 和项目 B 都可能读取名为“PUBLIC_DOMAIN”的变量,但一个会得到“a.example.com”,另一个会得到“b.example.com”。
我提到 Octopus Deploy 是因为它恰好是我们正在进行的改变,但这个问题可能适用于从 Jenkins 管道访问的任何数据,这并不是 Octopus Deploy 特有的。
答案1
实现这一点的方法几乎是无限的。以下是我想到的三种方法:
你可以使用Jenkins Pipeline 共享库将配置值存储在中心位置。
您可以将值存储在远程文件或存储库中,并让管道从远程文件或存储库中的文件中读取该值。
您可以让管道通过 HTTP REST API 从另一台服务器获取值。