如何在jenkins中为shell脚本提供凭据

时间:2016-12-07 09:03:29

标签: bash shell jenkins credentials

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

USER=theuser
PASS=thepass
项目环境中的

Prepare an environment for the run -> Properties Content

这样做很好,但这是一个糟糕的解决方案,因为:

  • 凭据未安全存储
  • 任何有权访问项目配置的人都可以看到它们
  • 他们在Jenkins控制台泄漏

我们进行了一些研究并找到了promising plugin,但我们不知道如何使插件管理的凭据可用于我们的脚本,理想情况下是环境变量。

我们如何从脚本访问Jenkins插件管理的凭据?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

我们正在使用这个: https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

然后指定您希望密码具有的环境变量

所以如果你指定这样的东西: enter image description here

稍后您可以在shell中使用$ PASSWORD。