在 Jenkins 管道脚本中隐藏密码

2023-12-29

我正在尝试在我的 Jenkins 构建中隐藏密码。

我已经试了.

但是,这似乎不适用于我的 Jenkins 管道脚本,因为如果我定义密码PASSWD1然后我在脚本中使用它,如下所示${PASSWD1}, 我正进入(状态:

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

如果我使用env.PASSWD1,那么它的值将被解析为null.

那么我应该如何在 Jenkins 管道脚本中屏蔽密码呢?


最简单的方法是使用凭证插件 https://plugins.jenkins.io/credentials.

您可以在其中定义不同类型的凭据,无论是单个密码(“秘密文本”)、文件还是用户名/密码组合。另外,其他插件可以提供其他类型的凭据。

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

在任何情况下,您都可以使用以下命令轻松生成所需的语法片段生成器 https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator.

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

这将使密码仅在该块内的给定变量中可用。如果您尝试打印密码(就像我在这里所做的那样),它将被屏蔽。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Jenkins 管道脚本中隐藏密码 的相关文章

随机推荐