软件级别:
我正在处理Freestyle项目(而不是管道),并希望对工作的主要处理使用Groovy命令构建步骤。
我正在尝试从用户凭证中获取用户ID和密码,以便常规脚本可以将其用于各种CLI操作。我花了很多时间来寻找答案,但是我发现没有一个起作用。多数不清楚,许多针对管道。
在这一点上,我将不胜感激。
以下是详细信息。
我创建了一个新的参数化Freestyle项目,在其中为“用户名和密码”凭据添加了凭据参数。它默认为我通过凭据插件定义给Jenkins的凭据之一。如果绑定选择要显式使用的凭据,我不确定是否有必要。
我不确定在“构建环境”部分中是否使用了“使用秘密文本或文件”,尽管我不确定这对于用户名/密码样式绑定至关重要。
我添加了“用户名和密码(分隔)”绑定,并将USERID和PASSWORD分别设置为变量。
我的groovy命令窗口有以下一行: println(“ $ {USERID} $ {PASSWORD}”)
建立工作时,出现此错误:
答案 0 :(得分:1)
这两种方式都会将凭据注入到环境变量中,因此您可以从Groovy脚本的环境变量中访问它们,如下所示。
def env = System.getenv()
println env['auth']
println env['USERNAME']
println env['PASSSWORD']
但是两种方法的注入值都不一样。
1)添加凭据作业参数供用户在运行作业时选择
通过这种方式,将插入credentialId,因此您将无法获得用户名和密码。
credentialId example: 1dd4755a-9396-4819-9327-86f25650c7d7
2)使用凭据绑定
这样,用户名和密码就被注入了,我想这就是您想要的。
def env = System.getenv()
def username = env['USERNAME']
def password = env['PASSSWORD']
def cmd = "curl -u $username:$password ...."
通过插件Execute Groovy script
答案 1 :(得分:0)
总而言之,@ yong帖子中标识的技术仅适用于System Groovy Script构建步骤。最新的插件和Jenkins级别将混淆凭据参数,因此println不能用于通过视觉检查来验证其内容。