stages {
stage('Get Clone ') {
steps {
sh """
./scripts/login_to_cf.sh -user ${params.USERNAME} -password ${params.PASSWORD} -
"""
}
}
}
当我调用脚本时,可以看到密码。 如何隐藏或保护它?
答案 0 :(得分:1)
您应该使用Jenkins Credentials Binding Plugin。首先,您需要添加凭据。为此,请转到您的Jenkins作业文件夹,然后点击左侧栏中的凭据。接下来,单击(全局)凭据域,然后单击添加凭据。选择带密码的用户名凭据类型,然后传递您的用户名和密码。
您可以将 ID 字段保留为空-Jenkins将在适当的位置生成UUID,因此,在添加它时,请转到凭据的 Edit 视图,以便您可以复制凭据ID
现在,您可以在文件夹中的Jenkins作业中使用此用户名和密码。在Jenkins管道中,您使用withCredentials()
步骤来注入凭据。看一下以下示例管道:
pipeline {
agent any
stages {
stage("Test") {
steps {
withCredentials([usernamePassword(credentialsId: '2480f22e-52b4-40df-a6f4-ab346769d694', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh "echo --help -u $USERNAME -p $PASSWORD"
}
}
}
}
}
在此示例中,我使用 ID 2480f22e-52b4-40df-a6f4-ab346769d694
注入凭据,并将用户名存储在USERNAME
变量中,并将密码存储在PASSWORD
变量中。使用withCredentials()
的好处是,Jenkins会在控制台日志中使用****
替换用户名和密码,因此您的密码不会随控制台日志泄漏。 (它只会影响控制台日志,并且您执行的命令会收到正确的凭据。)
[Pipeline] node
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] withCredentials
[Pipeline] {
[Pipeline] sh
+ echo --help -u **** -p ****
--help -u **** -p ****
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Terminated
Finished: SUCCESS