簡體   English   中英

從Jenkins訪問帶有密碼憑證參數的用戶名使用Groovy命令執行Groovy構建步驟?

[英]Accessing a Username with Password Credential Parameter from a Jenkins Execute Groovy build step using Groovy command?

軟件級別:

  • 詹金斯2.121.2
  • 憑證插件2.1.18
  • 憑證綁定插件1.16
  • 普通憑證插件1.4

我正在處理Freestyle項目(而不是管道),並且想對作業的主要處理使用Groovy命令構建步驟。

我正在嘗試從用戶憑證中獲取用戶ID和密碼,以便常規腳本可以將其用於各種CLI操作。 我花了很多時間來尋找答案,但是我發現沒有一個起作用。 多數不清楚,許多針對管道。

在這一點上,我將不勝感激。

這是血腥的細節。

我創建了一個新的參數化Freestyle項目,在其中為“用戶名和密碼”憑據添加了憑據參數。 它默認為我通過憑據插件定義給Jenkins的憑據之一。 如果綁定選擇要顯式使用的憑據,我不確定是否有必要這樣做。

在此處輸入圖片說明

我不確定在“構建環境”部分中選擇了“使用秘密文本或文件”,盡管我不確定這對於用戶名/密碼樣式綁定至關重要。

構建環境設置

我添加了“用戶名和密碼(分隔)”綁定,並將USERID和PASSWORD設置為各自的變量。

綁定

我的常規命令窗口具有以下唯一行:println(“ $ {USERID} $ {PASSWORD}”)

Groovy命令

構建作業時,出現以下錯誤:

輸出

兩種方式都會將憑據注入到Environment Variable中 ,因此您可以按照以下兩種方式從Groovy腳本中的Environment Variable中訪問它們。

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 ...."

通過插件添加Jenkins Build Step供應品Execute Groovy script

在此處輸入圖片說明

總而言之,@yong帖子中標識的技術僅適用於System Groovy Script構建步驟。 最新的插件和Jenkins級別將混淆憑證參數,因此println不能用於通過視覺檢查來驗證其內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM