对于Jenkins Job DSL,我正在尝试为作业选择特定的ssh代理(插件)键(使用包装上下文中的sshAgent关键字)。我们已经安装了Jenkins ssh代理插件和几个密钥设置(该插件有效,因为我们几乎将其用于所有工作)。无论我是否在Jenkins设置中指定了其他密钥,Jenkins Job DSL sshAgent命令始终会选择第一个密钥。
我尝试仅使用键名,但也尝试使用key_name +空格+描述(就像下拉列表所示)。这也不起作用-仍然选择第一个键。
这是一个已知的问题? (我尚未对此进行任何搜索)
最佳答案
您需要将凭据的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')
}
}
关于jenkins-job-dsl - Jenkins Job DSL sshAgent无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34816798/