如何配置Jenkins任务从不同节点池调度节点执行Linux、Windows对应命令
实现方案
下面分别给出Freestyle、Matrix(Multi-Configuration)两类任务的配置方法:
1 Freestyle 类型任务
Freestyle任务适合需要串行执行两个节点任务的场景,配置步骤如下:
- 任务创建时选择「Freestyle project」,全局的「Restrict where this project can be run」配置项留空,不限制全局调度节点
- 添加第一个构建步骤:选择「Execute Windows batch command」,点击步骤右上角的「高级」按钮,找到「Run only if node matches label」配置项,填入标签
Win,命令输入框内填写helloWindows.bat - 添加第二个构建步骤:选择「Execute shell」,同样在高级配置中设置「Run only if node matches label」为
Lin,命令输入框内填写helloLinux.sh
2 Matrix(Multi-Configuration)类型任务
这是最适配需求的原生方案,支持并行调度两个节点的任务,日志独立,配置步骤如下:
- 任务创建时选择「Multi-configuration project」(矩阵项目)
- 找到「Configuration Matrix」配置模块,添加「Slaves/Node」类型的配置轴,自定义轴名称为
os_node - 在轴的标签筛选列表中,勾选提前配置好的节点池标签
Lin和Win,系统会为每个标签生成一个独立的任务执行实例 - 构建步骤区域分别添加「Execute Windows batch command」(填写
helloWindows.bat)和「Execute shell」(填写helloLinux.sh)即可,Jenkins会自动匹配节点操作系统执行对应类型的构建步骤,无需额外条件配置 - 可选配置:勾选「Execute configurations in parallel」即可实现两个节点任务并行执行,默认是串行执行
通用注意事项
- 需提前确认
Lin、Win标签下的agent节点和Jenkins master通信正常,调度权限已开放 - 两个脚本需提前放置在对应agent节点的任务工作目录,或者配置为系统全局可执行的命令
- 若任务需要配置自定义参数,直接在全局参数模块添加即可,两个节点的执行实例会自动继承所有参数
内容的提问来源于stack exchange,提问作者John Rocha
相关产品推荐
相关产品推荐

