在Jenkinsfile中使用pipeline编写脚本执行命令时候,很多时候我们的命令中需要携带密码,所以我们需要将密码隐藏避免输出到控制台日志中,先看一下隐藏密码后的效果:
Masking supported pattern matches of $SONAR_USERNAME or $SONAR_PASSWORD
[Pipeline] {
[Pipeline] sh
+ /var/maven_home/bin/mvn sonar:sonar -Dsonar.host.url=http://192.168.1.13:9000 -Dsonar.login=**** -Dsonar.password=**** -Dsonar.java.binaries=target/classes -Dsonar.projectName=shanhy-example1:develop -Dsonar.projectKey=shanhy-example1:develop
[INFO] Scanning for projects...
具体的方法很简单:
1、在Jenkins的“凭据”中,添加好账号密码生成一个记录(ID你可以指定,不指定的话系统自动生成)
2、编写 pipieline 脚本,示例如下:
withCredentials([usernamePassword(credentialsId: '55b64065-888888888888-c5261888', passwordVariable: 'SONAR_PASSWORD', usernameVariable: 'SONAR_USERNAME')]) {
sh("${mvn_home}/bin/mvn sonar:sonar -Dsonar.host.url=http://192.168.1.13:9000 -Dsonar.login=${SONAR_USERNAME} -Dsonar.password=${SONAR_PASSWORD} -Dsonar.java.binaries=target/classes -Dsonar.projectName=${project_name}:${git_branch_name} -Dsonar.projectKey=${project_name}:${git_branch_name}")
}
这样的脚本执行后,控制台日志输出的密码就是 ****
这样脱敏的了。
(END)