4

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

我曾尝试仅使用键名,但也尝试过 key_name + 空格 + 描述(就像下拉菜单中显示的那样)。这也不起作用——仍然选择第一个键。

这是一个已知的问题?(我还没有搜索过这个)

4

1 回答 1

3

您需要将凭证的 ID 传递给sshAgentDSL 方法。要获取 ID,请至少安装 1.21 版的Credentials Plugin。然后导航到您要使用的凭据,例如,如果您要使用的凭据是全局的并称为“您的凭据”,请转到 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')
  }
}
于 2016-01-18T08:42:36.143 回答