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

dan*_*ast 5 bash shell credentials jenkins

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

USER=theuser
PASS=thepass
Run Code Online (Sandbox Code Playgroud)

在项目环境中(Prepare an environment for the run -> Properties Content

这可以正常工作,但这是一个不好的解决方案,因为:

  • 凭据未安全存储
  • 他们对任何有权访问项目配置的人都是可见的
  • 他们在Jenkins控制台中泄漏

我们进行了一些研究,发现了一个很有前途的插件,但是我们不知道如何使该插件管理的凭据可理想地作为环境变量提供给脚本。

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

Ami*_*tyo 5

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


MaT*_*ePe 5

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

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

因此,如果您指定如下内容: 在此处输入图片说明

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