jenkins - 控制台日志中的 Jenkins 声明性管道掩码参数密码
问题描述
我想屏蔽作为 Jenkins 作业中的参数提供的密码,并且它使用声明性管道语法。我不想保存任何凭据并使用它们。因为这将是运行特定于他们的作业的用户输入的凭据。
我已经尝试过 MaskPasswordsBuildWrapper,但它不起作用。如果有人可以提供工作示例,我将不胜感激。
这是我使用 MaskPasswordsBuildWrapper 的声明性管道的 Jenkinsfile,它不起作用:
pipeline {
agent none
options {
skipDefaultCheckout()
skipStagesAfterUnstable()
}
parameters {
string(name: 'userid', defaultValue: 'master', description: 'Enter User ID')
password(name: 'passwd', defaultValue: 'secret', description: 'Enter Password')
}
stages {
stage('Test') {
agent {
label 'someLabel'
}
steps {
script {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: 'PSWD', password: params.passwd]], varMaskRegexes: []]) {
sh "echo PSWD: ${PSWD}"
}
}
}
}
}
}
解决方案
我能够在控制台日志中屏蔽密码,下面是工作代码:
pipeline {
agent none
options {
skipDefaultCheckout()
skipStagesAfterUnstable()
}
parameters {
string(name: 'userid', defaultValue: 'master', description: 'Enter User ID')
password(name: 'passwd', defaultValue: 'secret', description: 'Enter Password')
}
stages {
stage('Test') {
agent {
label 'someLabel'
}
steps {
script {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[password: "${passwd}", var: 'PSWD']]]) {
sh '''echo PSWD: ${passwd}'''
}
}
}
}
}
}
推荐阅读
- .net - Bot framework v4 .NET 通过重定向到不同的对话框来处理用户中断
- php - 如何在php中格式化多维数组上的数字?
- android - Google Drive REST API v3 Android - 需要登录错误
- sql - oracle 表中的最后一个条目
- python - 如何使用 python 使用多个唤醒词(snowboy)?
- python - “学生”没有定义,当定义就在它上面时
- python - 如何访问 kivy.animation 中的小部件放置属性
- python-3.x - Python - 对包含字符串和整数的列表进行排序
- ruby-on-rails - 生产环境中的 ERR_SSL_PROTOCOL_ERROR 仅适用于 wifi
- python - Multiprocessing.Pool 未编译