我是Jenkins世界的新手,我有一个用例,其中已使用JenkinsFile设置了jenkins管道。在部署阶段,我们将在后端调用一些ansible脚本,以将映像部署到在云环境中运行的Kubernetes集群中。该脚本希望环境变量中包含很少的秘密,因此我想了解哪个是在詹金斯中处理秘密的最佳选项,我是否需要它们输入詹金斯凭据并在詹金斯环境中阅读它们标签,如下所示。或在执行管道时从用户使用输入插件获取值是安全的,但是如果我从用户那里得到,那么我将无法完全自动化管道,将等到用户输入密码。您能以安全的方式帮助您处理凭据吗?
pipeline{
agent any {
environment {
SECRET_VALUE=credentials('SECRET_VALUE_FROM_JENKINS_CREDENTIALS')
}
}
}
答案 0 :(得分:1)
这取决于您的用例,确实,您上面提到的两种方法都可以使用。
将您的秘密作为詹金斯凭据保存起来应该没有任何问题,以我为例,我所有的秘密都在Hashicorp保险库中,而我的詹金斯凭据指向该库所在的位置为例...
- usernamePassword:
scope: GLOBAL
id: serviceUser
username: svc_admin
password: "${secret/xyz/service_user/password}"
description: My secret service user
Jenkins部署是通过JCasC进行的。
答案 1 :(得分:0)
作为jenkins管理员,我可以说将凭证存储在jenkins中是安全的。
只需在詹金斯中创建凭据并在管道中使用即可。同样,在jenkins中安装掩码密码插件也很好,它将屏蔽jenkins作业输出中的凭据。