我想避免在 Jenkins 中存储任何凭据,而仅依靠 Hashicorp Vault 来存储和管理凭据。
一旦管道工作,让它工作是非常微不足道的,但我找不到任何示例或指导,说明如何在不将 PAT 令牌存储在 Jenkins 机密中的情况下,从 Jenkinsfile 中的私有仓库执行初始 git 克隆。
我想先调用 Vault,从那里获取 PAT 令牌,然后使用 Jenkinfile 克隆 repo。
任何人都可以给我一个提示吗?
您将需要至少存储 approle/secret 以在 Jenkins 凭证存储中访问 Vault。然而,一旦你这样做了,你应该能够使用Vault 插件来访问你需要的任何信息,并将其保存到环境变量中。从那里,您可以根据需要使用该环境变量。
有关如何在 Jenkinsfile 中使用 Vault 插件的示例,请参见此处
您可以将 SSH 密钥添加到 Jenkins 内置节点(以前的主节点)用户的主目录,以及您使用的任何构建节点的用户主目录。您还需要将正确的配置选项添加到您的 SSH 配置文件 (.ssh/config),以便 SSH 使用该密钥来访问您的 SCM 服务器。
Host myscm.mycompany.com
User scmuser
IdentityFile ~/.ssh/scm_id_rsa
PreferredAuthentications publickey
RequestTTY no
完成上述设置后,您只需在 Jenkins 中指定 SCM URL,它将使用 SSH 文件夹中的默认值。
如果您不使用 SSH,请使用您的 SCM 以及访问方法(http?rsync?)发回。
您还有两个选择:(1) 将您的 Jenkinsfile 存储在与您的项目存储库不同的公共存储库中,或者将您的项目存储库公开,或者 (2) 直接在作业中定义您的管道,这样您就不需要詹金斯文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句