当前位置: 首页 > 面试题库 >

在Jenkins管道脚本中隐藏密码

尚恩
2023-03-14
问题内容

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

我一直在尝试mask-passwords插件。

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

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

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

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


问题答案:

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

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

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

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

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

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



 类似资料:
  • 问题内容: 我正在尝试将旧样式的基于项目的工作流转换为基于Jenkins的管道。在浏览文档时,我发现有两种不同的语法分别命名为和。例如最近(2016年底)发布的Jenkins网络语法。尽管有一个新的语法版本,Jenkins仍然也支持脚本语法。 现在,我不确定这两种类型的哪种情况最合适。语法将很快被弃用吗?詹金斯管道的未来会是这样吗? 任何可以分享有关这两种语法类型的想法的人。 问题答案: 最初创建

  • 问题内容: 我试图使用以下代码执行构建,最后,在构建成功时执行构建后操作。仍然,我得到了MultipleCompilationErrorsException,说我的try块不是有效的节定义。请帮忙,我尝试了很多重组障碍,但似乎无法解决问题。 问题答案: 您使用的是声明式的方式来指定管道,因此您不得使用try / catch块(用于脚本化管道),而应使用post部分。参见:https : //jen

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • 我正在尝试使用groovy构建脚本将构建管道迁移到“管道插件”。 我的管道通常是: 测试(梯度) 我想在我的jenkins构建脚本中使用像version/group等的gradle变量来发布到artiFactory中的正确文件夹中。这是artiFactory插件过去会为我处理的事情。如何实现? 对于单个gradle项目,我使用如下内容:

  • 问题内容: 我想使用Jenkins 2.x Groovy Script Build Pipeline开始Sonar项目分析。 我在Maven中配置了声纳,所以没什么大不了的: 但是我如何从声纳获得结果呢?甚至更好的是,我如何确定是否达到了质量要求,以便停止构建管道。 据我所知,自从某些声纳版本以来,构建破坏者的概念就已过时。或您将如何处理。 我仍然认为,如果项目的基础代码太糟糕,则停止/暂停构建管

  • 问题内容: 我正在使用詹金斯管道项目。在脚本中,我想以动态方式编写 并行 块,因为节点数可以更改。例如,从此: 像这样 但是这种方式行不通,Groovy / Jenkins对这种语法不满意。有人可以建议一种更好的方法吗? 问题答案: 您可以像先定义节点图一样,然后将其执行为。