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