Jenkins Job DSL sshAgent无法正常工作

时间:2016-01-15 17:41:51

标签: jenkins-job-dsl

对于Jenkins Job DSL,我正在尝试为作业选择特定的ssh代理(插件)键(使用包装器上下文中的sshAgent关键字)。我们安装了Jenkins ssh代理插件和几个密钥设置(这个插件可以工作,因为我们几乎用于所有工作)。无论我是否在Jenkins设置中指定了不同的密钥,Jenkins Job DSL sshAgent命令总是选择第一个密钥。

我尝试过只使用密钥名称,但也尝试过key_name + space + description(就像下拉菜单一样)。这也不起作用 - 仍然选择第一把钥匙。

这是一个已知问题吗? (我还没有找到任何搜索)

1 个答案:

答案 0 :(得分:3)

您需要将凭据的ID传递给sshAgent DSL方法。要获取ID,请至少安装Credentials Plugin的1.21版。然后导航到您要使用的凭据,例如如果您要使用的凭据是全局的并且名为"您的凭证"去詹金斯>证书>全局凭证(不受限制)>您的凭证>更新。然后点击"高级..."按钮显示ID。如果您在创建凭据时未指定自定义ID,则它是99add9e9-84d4-408a-b644-9162a93ee3e4之类的UUID。然后在DSL脚本中使用此值。

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

建议在创建新凭据时使用可识别的自定义ID,例如deployment-key。这将导致可读的DSL脚本。

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