2016-01-15 57 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

工作就像一个魅力!非常感谢! –