我正在尝试在我的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/

10-16 22:49