【问题标题】:Accessing credentials in Jenkins with the Credentials Parameter plugin使用凭据参数插件在 Jenkins 中访问凭据
【发布时间】:2017-05-18 01:19:47
【问题描述】:

我的 Jenkins 盒子需要通过它们的 REST api 访问 Stash 和 Jira。为此,我需要存储他们的凭据。

我正在做的方式是通过凭据参数,它要求我提供名称、凭据类型、必需、默认值和描述。

我将名称定义为 CREDENTIAL_PARAMETER,在类型中我将其设置为“带密码的用户名”,然后我从默认值的列表中选择一个凭据。

接下来在 Build 部分我定义应该执行一个 shell,类似于

echo $CREDENTIAL_PARAMETER

我希望得到像“用户名:密码”这样的 CREDENTIAL_PARAMETER。但是,我得到了一个哈希值,我认为这是可以检索用户名和密码的方式。

如何使用 bash 根据哈希获取凭据?

【问题讨论】:

  • 您找到解决方案了吗?遇到同样的事情,想知道下面的答案是否有帮助,或者您是否选择了不同的路线?

标签: jenkins jenkins-plugins


【解决方案1】:

就像给自己的一个便条,希望这对其他人有帮助

需要注意的重要一点是 Credentials ParameterCredentials Binding 之间存在区别。

如果您使用的是参数化构建,您可以添加一个引用凭据绑定的凭据参数。当您运行构建时,您会注意到有一个环境变量与您的凭证存储中的凭证 GUID 相关。

要让它真正有用,您必须将“凭据绑定”注入您的环境。

转到工作定义的构建环境部分。勾选使用秘密文本或文件。这将实际上将秘密注入您的构建环境。这里可以使用之前创建的“凭据参数”,让您选择不同的凭据参数。

对于文件,它会将文件放到工作区中的某个位置(?),然后注入一个包含文件完整路径的秘密环境变量。

这个来自 Cloudbees 的 blog 应该可以帮助解决剩下的问题。

【讨论】:

  • 谢谢,@Breedly。我花了很多时间在 Execute Shell 区域研究“如何使用 jenkins 凭据”。你的回复解决了我的问题!
【解决方案2】:

可以,但是需要安装插件https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Binding+Plugin。没有它,你得到的只是一个散列到可以找到凭据的位置。

一旦您获得凭据,Jenkins 会将它们作为会话环境放置,可以检索..

请注意,只有在“构建环境”部分中启用了“使用机密文本或文件”时,凭据才可用。

一旦全部定义完毕,用户名和密码既可以作为两个不同的字段传递,也可以只作为一个用“:”分隔的字段传递

【讨论】:

  • 请务必阅读以note开头的句子。我浪费了很多时间,因为我没有阅读。
  • 在 Binding 中使用 Parameter 表达式时,请确保 Binding 变量和 Credential 参数不要使用相同的名称,否则该值将保留为 Credential ID。例如,对于秘密文件,构建可能会在 No such file or directory 上失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2020-02-15
  • 1970-01-01
相关资源
最近更新 更多