当前位置: 首页 > 知识库问答 >
问题:

使用Groovy命令从Jenkins执行Groovy构建步骤访问带有密码凭据参数的用户名?

吴品
2023-03-14

软件级别:

  • 詹金斯2.121.2

我正在使用Freestyle项目(不是管道),并希望使用Groovy命令构建步骤进行作业的主要处理。

我试图从用户凭据获取用户ID和密码,以便groovy脚本可以将其用于各种CLI操作。我花了很多时间寻找答案,但我发现没有一个有效。大多数情况尚不清楚,许多是针对管道的。

我将非常感谢在这一点上提供一些指导。

以下是血淋淋的细节。

我创建了一个新的参数化自由式项目,在其中我为“用户名和密码”凭据添加了凭据参数。它默认为我通过凭据插件定义Jenkins的凭据之一。如果绑定选择要显式使用的凭据,我不确定这是否必要。

我在构建环境部分选中了“使用密文或文件”,尽管我不确定这对于用户名/密码样式的绑定是必不可少的。

我的groovy命令窗口只有一行:println(“${USERID}${PASSWORD}”)

当我构建作业时,我得到了这个错误:

共有2个答案

燕璞
2023-03-14

总而言之,@ong的帖子确定的技术仅适用于System Groovy Script构建步骤。最新的插件和Jenkins级别会混淆凭据参数,因此println不能用于通过目视检查来验证其内容。

袁英豪
2023-03-14

这两种方式都会将凭据注入环境变量,因此您可以从Groovy Script中的环境变量访问它们,如下所示。

def env = System.getenv()
println env['auth']
println env['USERNAME']
println env['PASSSWORD']

但这两种方法的注入值不同。

1)添加Credential作业参数供用户在运行作业时选择

这样,就注入了credentialId,因此您无法获得用户名和密码。

认证示例:1dd4755a-9396-4819-9327-86f25650c7d7

2)使用凭据绑定

这样,用户名和密码被注入,我想这就是你想要的。

def env = System.getenv()
def username = env['USERNAME']
def password = env['PASSSWORD']

def cmd = "curl -u $username:$password ...."

添加Jenkins Build Step supply by plugin执行Groovy脚本

 类似资料:
  • 我想在詹金斯中强制执行以下场景: 我有工作A和工作B 我想在执行作业B时禁用作业A,在执行作业B后,我想再次启用作业A。 为了启用/禁用作业A,我使用了Groovy插件:Groovy插件 Groovy插件提供了两种可能性:执行Groovy脚本和执行系统Groovy脚本。 在开始执行作业B时,我添加了以下代码片段: 执行工作B后: 当我运行作业B时,它失败了,出现以下异常: 当我运行作业B时,它失败

  • 问题内容: 我正在使用Scriptler插件,因此可以在构建步骤中运行groovy脚本。我的Jenkins奴隶正在服务模式下的Windows上运行。使用脚本编辑器,我不需要使用Windows批处理脚本。 但是我很难在构建步骤中获取环境变量。 哪里是将env-瓦尔对詹金斯启动部分。但是,我想得到 如果要添加“执行Windows批处理命令”构建步骤: 有用。如果要添加具有相同设置的脚本程序脚本作为构建

  • 我使用脚本插件,所以我可以运行一个Groovy脚本作为构建步骤。我的Jenkins奴隶在服务模式下的窗口上运行。有了脚本,我不需要使用窗口批处理脚本。 但是我很难在构建步骤中获取环境变量…这是有效的: 其中 是 enkins 初创公司 env-vars 的一部分。但是,我想得到 如果我添加“执行 Windows 批处理命令”构建步骤: 它起作用了。如果我添加一个脚本脚本作为具有相同设置的构建步骤:

  • 我正在尝试从groovy中使用shell命令< code > notify-send-t 2000 " Title " " Message " ,以下一种方式< code > " notify-send-t 2000 \ " Title \ " \ " Message \ "。execute()就可以完美地工作了。但是当我试图用表达代替信息时,似乎什么都不管用。下面是代码片段: 能帮我理解一下吗?

  • 我试图访问选择参数设置的这个构建是参数化在一个Groovy构建脚本,为一个Jenkins自由式工作。 我尝试将列表用作,但它不起作用,并给出了以下输出: 我在Stackoverflow上引用了其他类似的帖子,但似乎没有什么对我有用。我还尝试了

  • 问题内容: 我有一个使用Perforce插件的参数化作业,想检索构建参数/属性以及由Perforce插件设置的p4.change属性。 如何使用Jenkins Groovy API检索这些属性? 问题答案: 关于参数: 首先看这个答案要获取项目的所有构建的列表(根据该答案获得): 当你发现你特别的身材,你需要得到类型的所有行动ParametersAction用。然后,您查询返回的对象以获取您的特定