2016-01-15 78 views
3

對於Jenkins Job DSL,我試圖爲作業選擇特定的ssh代理(插件)鍵(在封裝上下文中使用sshAgent關鍵字)。我們安裝了Jenkins的ssh代理插件和幾個密鑰設置(這個插件可以工作,因爲我們幾乎可以將它用於所有的工作)。 Jenkins Job DSL sshAgent命令總是選擇第一個密鑰,而不管我是否在我們的Jenkins設置中指定了不同的密鑰。Jenkins Job DSL sshAgent不能正常工作

我已經嘗試過只使用鍵名稱,但也嘗試了key_name +空格+描述(就像下拉菜單顯示一樣)。這也行不通 - 仍然選擇第一個關鍵。

這是一個已知的問題? (我還沒有出現任何搜索)

回答

2

您需要將憑據的ID傳遞給sshAgent DSL方法。要獲得ID,請至少安裝Credentials Plugin的版本1.21。然後導航到您要使用的憑據,例如如果要使用的憑證是全局憑證,並稱爲「您的憑證」,請轉至Jenkins>憑據>全局憑據(不受限制)>您的憑證>更新。然後點擊「高級...」按鈕顯示ID。如果您在創建憑證時沒有指定自定義ID,則它是一個UUID,如99add9e9-84d4-408a-b644-9162a93ee3e4。然後在你的DSL腳本中使用這個值。

job('example') { 
    wrappers { 
    sshAgent('99add9e9-84d4-408a-b644-9162a93ee3e4') 
    } 
} 

建議在創建新憑證時使用可識別的自定義ID,例如, deployment-key。這將導致可讀的DSL腳本。

job('example') { 
    wrappers { 
    sshAgent('deployment-key') 
    } 
} 
+0

工作就像一個魅力!非常感謝! –