问题描述
我的 Jenkins 在主机 1 上,我希望使用 Jenkins 管道触发主机 2 上的 ansible。这可以通过在 host2 上创建一个从节点并在 Jenkins 管道中指定 agent
来完成。
但是,我在 host2 上没有 Jenkins slave。
相反,Jenkins 通过 Server Groups Center
连接到 host2,可在 Jenkins Global Configuration
我需要在 host2 上安装 Jenkins slave 吗?如果没有,那么我如何在 Jenkins 管道中使用 Server Groups Center
在 host2 上触发 Ansible?示例代码请...
解决方法
我需要在 host2 上安装 Jenkins slave 吗?
不,如果您在 host2
上使用 Linux:您可以简单地通过 SSH 运行任何命令。
如何使用 Jenkins 管道中的服务器组中心在 host2 上触发 Ansible?
Server Groups Center
块来自 SSH2 Easy plugin,这是非常古老的 doesn't support Jenkins 管道。因此,您无法在管道中使用来自该设置块的信息。
但是还有其他的 SSH 插件;例如,试试 Publish over SSH 插件。此插件将 Publish over SSH
块添加到 Jenkins Global Configuration
,您可以在其中指定 host2
连接参数。
然后您可以按如下方式编写管道步骤({HOST2}
是您在 host2
中的 Publish over SSH
块中键入的 Jenkins Global Configuration
的名称):
steps {
sshPublisher \
failOnError: true,\
publishers: [ \
sshPublisherDesc( \
configName: "{HOST2}",\
transfers: [ \
sshTransfer (execCommand: "ansible -m ping all -i inventory_file",execTimeout: 120000) \
] \
) \
]
}