我们在Jenkins中配置了自由风格项目,使用shell脚本作为构建步骤。在某些情况下,我们需要访问第三方服务的凭据。我们通过提供凭据来解决这个问题:
USER=theuser
PASS=thepass
在项目环境中(
准备运行环境->属性内容
),这种方法可以工作,但是它不是一个好的解决方案,因为:
- 凭据没有安全存储
- 他们对任何有权访问项目配置的人都是可见的
- 它们泄漏在 Jenkins 控制台中
我们如何从脚本中访问 Jenkins 插件管理的凭据?
我们在Jenkins中配置了自由风格项目,使用shell脚本作为构建步骤。在某些情况下,我们需要访问第三方服务的凭据。我们通过提供凭据来解决这个问题:
USER=theuser
PASS=thepass
准备运行环境->属性内容
),这种方法可以工作,但是它不是一个好的解决方案,因为:
$PASSWORD
。withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: yourCredentialsId, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
// user name and password will be stored in USERNAME and PASSWORD envs
}
withCredentials([usernamePassword(credentialsId: 'my-id', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')])
- Mostafa Farzán