如何在Jenkins控制台中屏蔽变量[Groovy]

8zzbczxx  于 2022-11-21  发布在  Jenkins
关注(0)|答案(2)|浏览(175)

我如何在Jenkins面具上做groovy我的groovy代码:

sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=squ_a1111"

Jenkins控制台:

sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=squ_a1111

当我运行它时,token出现在控制台中,但我不希望它出现。我如何进行屏蔽?
我希望这样,例如:

sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=******
kx5bkwkv

kx5bkwkv1#

我在Jenkins中安装了Mask Passwords插件,并按如下方式使用它。

def token = "squ_a1111"
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[password: token]]]) {
    sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=${token}"
}
nr9pn0ug

nr9pn0ug2#

最简单的方法是使用凭据绑定插件
您可以在其中定义不同类型的凭据,无论是单个密码(“机密文本”)、文件还是用户名/密码组合。
定义后,可以按如下方式使用它:

steps {
    withCredentials([
        string(credentialsId: "sonar-creds", variable: 'PWD_SONAR')
    ]) {
        script {
            sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=$PWD_SONAR"
        }
    }
}

这将使密码仅在此块中的给定变量中可用。如果试图打印密码,它将被屏蔽。

另请参阅:

相关问题