我正在尝试在我的Jenkins版本中屏蔽密码。
我一直在尝试the mask-passwords plugin。
但是,这似乎不适用于我的Jenkins管道脚本,因为如果我定义密码PASSWD1
,然后在像${PASSWD1}
这样的脚本中使用它,则会得到:
No such DSL method '$' found among steps [addToClasspath, ansiColor, ansiblePlaybook, ....]
如果我使用
env.PASSWD1
,则其值将解析为null
。那么,如何在Jenkins管道脚本中屏蔽密码?
最佳答案
最简单的方法是使用Credentials Plugin。
您可以在此处定义不同类型的凭据,无论是单个密码(“ secret 文本”),文件还是用户名/密码组合。再加上其他插件可以贡献其他类型的凭据。
创建凭证时(通过Jenkins主页上的“凭证”链接),请确保设置了“ID”。在下面的示例中,我将其称为my-pass
。如果您不设置它,它将仍然有效,Jenkins会为您分配一个不透明的UUID。
无论如何,您都可以使用snippet generator轻松生成所需的语法。
withCredentials([string(credentialsId: 'my-pass', variable: 'PW1')]) {
echo "My password is '${PW1}'!"
}
这将使密码仅在此块内的给定变量中可用。如果您尝试像我在此处那样打印密码,它将被屏蔽。
关于jenkins - 在Jenkins管道脚本中隐藏密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42371909/