问题描述
我使用 Jenkins 管道进行部署。在安装过程中,您需要传递凭据。我能够使用以下方法在 Jenkins 控制台日志中成功屏蔽密码:
wrap([$class: 'MaskPasswordsBuildWrapper',varPasswordPairs: [[password: userElabPassword.toString(),var: 'userElabPassword'],[password: userJumpServerPassword.toString(),var: 'userJumpServerPassword']]]) {
不幸的是,我不知道如何将屏蔽应用于仍然显示未屏蔽密码的舞台视图:
使用的版本:
管道:舞台视图插件:2.19 掩码密码插件:2.13 詹金斯:2.263
解决方法
如果您使用如下所示的字符串插值
sh "password ${PASS}"
尝试将其替换为
sh 'password $PASS'
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#string-interpolation
但是,这仅适用于环境变量。在我上面的例子中通过。
,我通过使用带有 -e 标志的 sshpass 并通过环境变量传递凭据来解决它。这样我就完全避免在命令行中使用密码,因此它在 Pipeline Stage View 插件日志框中不可见。不过,在此插件中无法使用密码屏蔽仍然是一个问题。
,Jenkins Jira 中有一张票,其中包含如何处理此问题的更多示例。 https://issues.jenkins.io/browse/JENKINS-59214