我创建了全局凭据(用户名,密码)并提供了自定义ID.如何在Bash脚本中引用此ID?我已经在我的工作配置中检查了"注入全局密码".
我尝试过Jenkins:在PowerShell中访问全局密码但不起作用.
假设全局凭证的ID是"USER_PASSWORD",我的bash脚本尝试过:
echo ${USER_PASSWORD}
echo ${env:USER_PASSWORD}
Run Code Online (Sandbox Code Playgroud)
不行.我阅读了一些在线帖子,我需要查询Jenkins API以获取凭据.这听起来不对.
Chr*_*ker 21
使用凭据绑定插件,可以将全局凭证注入到构建上下文中.这可以通过选中作业配置页面的Build Environment部分中标记为Use secret text(s)或files(s)的复选框来完成.添加用户名和密码(已分隔)绑定,选择您创建的特定凭据,并定义用户名和密码变量.
下面是使用Credentials Binding Plugin的示例,但是使用冒号分隔的用户名/密码变量而不是两个单独的变量:
然后,您可以使用在shell脚本中定义的用户名和/或密码变量.假设用户名值为,foo密码值为bar...
用户名和密码绑定,变量名称USER_CREDENTIALS:
echo $USER_CREDENTIALS # -> foo:bar
Run Code Online (Sandbox Code Playgroud)
用户名和密码(分隔)绑定,变量名称USER_ID和USER_PASSWORD:
echo $USER_ID # -> foo
echo $USER_PASSWORD # -> bar
Run Code Online (Sandbox Code Playgroud)
Jus*_*der 15
如果您的凭据ID为“ USER_PASSWORD”,则必须使用例如读取。下面的命令:USER_CREDENTIALS = credentials('USER_PASSWORD')。完成此操作后,用户名和密码将在以下环境变量中可用:USER_CREDENTIALS_USR和USER_CREDENTIALS_PSW。詹金斯总是在变量名的末尾添加_USR和_PSW结尾。
管道示例(我没有完全测试它,但应该可以工作):
pipeline {
agent any
environment {
USER_CREDENTIALS = credentials('USER_PASSWORD')
}
stages {
stage('Run') {
steps {
sh "echo $USER_CREDENTIALS_USR"
sh "echo $USER_CREDENTIALS_PSW"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果得到****(四个星号)作为输出,就可以了-詹金斯会自动在控制台输出中屏蔽用户名和密码。
更多信息:https : //jenkins.io/doc/book/pipeline/jenkinsfile/#usernames-and-passwords。
就我而言,我使用 withCredentials Credentials Binding Plugin解决了问题。
stage('Commit') {
withCredentials([usernamePassword(credentialsId: 'hash', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh 'svn commit xxx.ear -m "Comment" --username $USERNAME --password $PASSWORD'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28104 次 |
| 最近记录: |