使用 jenkins 管道 groovy 脚本在多个主机上运行脚本

时间:2021-07-01 18:38:45

标签: jenkins jenkins-pipeline jenkins-groovy

我是 Jenkins 管道 groovy 脚本的新手。

我有一个名为“HOSTNAMES”的作业参数,它将采用一些由逗号分隔的主机名值作为输入。我需要以并行模式在所有这些主机上执行一些脚本。如何使用 jenkins groovy 脚本实现这一点。请指导我。

1 个答案:

答案 0 :(得分:0)

假设所有这些节点(主机名)都连接到 Jenkins 服务器并且 HOSTNAMES 参数是节点名称列表(它们出现在 jenkins 服务器中),您可以使用 parallel 步骤实现你想要的。

您必须将每个节点名称转换为代表并行执行分支的映射条目,然后使用 parallel 关键字运行它们。
类似:

def hosts = HOSTNAMES.split(',')
def executions = hosts.collectEntries { host ->
    ["Running on ${host}" : {
        node(host) {
            // The code to run on each node
            stage("Execution") {
                echo 'example code on #{host}'
                ...
            }
        }
    }]
}
parallel executions

如果需要,您也可以在一行中运行它:

parallel hosts.collectEntries { ...
相关问题