一尘不染

在Jenkins管道脚本中隐藏密码

jenkins

我正在尝试在我的Jenkins版本中屏蔽密码。

我一直在尝试mask-passwords插件

但是,这似乎不适用于我的Jenkins管道脚本,因为如果定义了密码PASSWD1,然后在这样的脚本中使用它,则会${PASSWD1}得到:

No such DSL method '$' found among steps [addToClasspath, ansiColor, ansiblePlaybook, ....]

如果使用env.PASSWD1,则其值将解析为null

那么,如何在Jenkins管道脚本中屏蔽密码?


阅读 433

收藏
2020-07-25

共1个答案

一尘不染

最简单的方法是使用Credentials插件

您可以在此处定义不同类型的凭据,无论是单个密码(“秘密文本”),文件还是用户名/密码组合。再加上其他插件可以贡献其他类型的凭据。

创建凭证时(通过Jenkins主页上的“凭证”链接),请确保设置了“ ID”。在下面的示例中,我将其称为my- pass。如果您不设置它,它将仍然有效,Jenkins将为您分配一个不透明的UUID。

无论如何,您都可以使用snippet generator轻松生成所需的语法。

withCredentials([string(credentialsId: 'my-pass', variable: 'PW1')]) {
    echo "My password is '${PW1}'!"
}

这将使密码仅在此块内的给定变量中可用。如果您像我在这里一样尝试打印密码,它将被屏蔽。

2020-07-25