【发布时间】:2018-09-28 08:23:09
【问题描述】:
我有一个基于 Jenkinsfile 的参数化 Jenkins 管道。一些参数包含我不想出现在作业的构建日志中的敏感密码。
所以我的问题是:我能否以某种方式在 Jenkinsfile 中注册一个字符串,然后将其替换为 - 比如说 ********** - 每当它出现在日志输出中时?
我知道withCredentials 步骤,但我不能使用它,因为凭据没有存储在 Jenkins 凭据存储中(而是在运行时作为参数提供)。
我在这里找到了这个答案https://stackoverflow.com/a/42372859/1549950 并尝试过这样的:
def secrets = [
[password: firstPassword, var: 'SECRET'],
[password: secondPassword, var: 'SECRET'],
[password: thirdPassword, var: 'SECRET']
]
node() {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: secrets]) {
// my stages containing steps...
}
}
其中firstPassword、secondPassword、thirdPassword 是包含我的密码的变量。但我仍然得到firstPassword...的内容在日志输出中显示纯文本。
我在 2.12.0 版本的 Jenkins 上安装了 Mask Password plugin。
基本上我正在寻找类似这样的东西:https://issues.jenkins-ci.org/browse/JENKINS-27486 - 票证已解决,但没有给出最终实现的示例 sn-p。
【问题讨论】:
标签: jenkins jenkins-pipeline credentials