如何在Jenkins中使凭据可用于Shell脚本

7

我们在Jenkins中配置了自由风格项目,使用shell脚本作为构建步骤。在某些情况下,我们需要访问第三方服务的凭据。我们通过提供凭据来解决这个问题:

USER=theuser
PASS=thepass

在项目环境中(准备运行环境->属性内容),这种方法可以工作,但是它不是一个好的解决方案,因为:
  • 凭据没有安全存储
  • 他们对任何有权访问项目配置的人都是可见的
  • 它们泄漏在 Jenkins 控制台中
我们进行了一些研究,并找到了一个有希望的插件,但我们不知道如何使插件管理的凭据可用于我们的脚本,最好作为环境变量。
我们如何从脚本中访问 Jenkins 插件管理的凭据?
2个回答

6

5
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: yourCredentialsId, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
    // user name and password will be stored in USERNAME and PASSWORD envs
}

1
我该如何从Bash脚本中实现这个? - blueFast
@Aurelien,您提供了管道文档的链接,但问题是关于自由风格项目的。 - Dan M.
啊,谢谢 @DanM.,是我的错误,我已经删除了我的评论。 - Aurélien
1
我不得不使用这个看似相似的表达式: withCredentials([usernamePassword(credentialsId: 'my-id', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) - Mostafa Farzán

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接