Jenkins Job DSL sshAgent 无法正常工作

Jenkins Job DSL sshAgent not working correctly

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

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

这是一个已知问题吗? (我还没有对此进行任何搜索)

您需要将凭据的 ID 传递给 sshAgent DSL 方法。要获取 ID,请至少安装 Credentials Plugin 的 1.21 版本。然后导航到您要使用的凭据,例如如果您要使用的凭据是全局的并且名为 "Your Credentials",请转至 Jenkins > Credentials > Global credentials (unrestricted) > Your Credentials > Update。然后单击 "Advanced..." 按钮以显示 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')
  }
}