我的Jenkins盒子需要通过他们的REST apis访问Stash和Jira。为此,我需要存储他们的凭证。
我正在做的方法是通过凭据参数,它要求我输入名称,凭证类型,必填,默认值和说明。
我将名称定义为CREDENTIAL_PARAMETER,在类型I中将其设置为“带密码的用户名”,然后从默认值列表中选择一个凭证。
接下来在Build部分中我定义了一个shell应该被执行,就像
echo $CREDENTIAL_PARAMETER
我希望获得类似“username:password”的内容作为CREDENTIAL_PARAMETER。但是,我得到一个哈希,我认为是如何检索用户名和密码。
如何使用bash获取基于哈希的凭据?
答案 0 :(得分:18)
就像对自己的说明一样,希望这会有助于其他人,我会比@Alexandre Santos更深入,尽管他的答案非常有帮助。
需要注意的重要一点是凭据参数与凭据绑定之间存在差异。
如果您使用参数化构建,则可以添加引用凭证绑定的凭据参数。运行构建时,您会注意到有一个环境变量与凭据存储中的凭据的GUID相关。
为了实际上有用,您必须注入"凭据绑定"进入你的环境。
前往作业定义的构建环境部分。检查使用秘密文字或文件。这将实际将秘密注入您的构建环境。此前创建的"凭据参数" 可用于选择不同的凭据参数。
对于文件,它会将文件放在工作区中的某个位置(?),然后注入一个带有文件完整路径的秘密环境变量。
来自Cloudbees的这个blog应该有助于其余的。
答案 1 :(得分:13)
有可能,但需要安装插件https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Binding+Plugin。如果没有它,你得到的只是可以找到凭据的哈希值。
获得凭据后,Jenkins会将它们作为会话环境放置,可以检索..
请注意,只有在“构建环境”部分中启用“使用密码文本或文件”时,凭据才可用。
一旦定义了all,用户名和密码可以作为两个不同的字段传递,也可以只传递一个以“:”分隔的字段