从 Vault 获取 Jenkins git repo 凭据

谢尔盖

我想避免在 Jenkins 中存储任何凭据,而仅依靠 Hashicorp Vault 来存储和管理凭据。
一旦管道工作,让它工作是非常微不足道的,但我找不到任何示例或指导,说明如何在不将 PAT 令牌存储在 Jenkins 机密中的情况下,从 Jenkinsfile 中的私有仓库执行初始 git 克隆。
我想先调用 Vault,从那里获取 PAT 令牌,然后使用 Jenkinfile 克隆 repo。
任何人都可以给我一个提示吗?

萨加尔

从 SCM 中检出您的项目文件

您将需要至少存储 approle/secret 以在 Jenkins 凭证存储中访问 Vault。然而,一旦你这样做了,你应该能够使用Vault 插件来访问你需要的任何信息,并将其保存到环境变量中。从那里,您可以根据需要使用该环境变量。

有关如何在 Jenkinsfile 中使用 Vault 插件的示例,请参见此处

用于检查您的 Jenkinsfile(原始结帐/克隆)

注意:以下取决于使用 SSH 访问您的 SCM。我已经确认此方法适用于 Git/SSH。

您可以将 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章