jenkins - 在 Jenkins 的多个节点上运行同一阶段
问题描述
我有关注 Jenkinsfile,我想在 3 个节点上运行舞台。我按照这个答案使用了 && 运算符。
pipeline{
agent {
label 'webserver && serverex && composeserver'
}
stages{
stage('run this on 3 nodes'){
steps{
script{
sh 'echo $HOSTNAME'
}
}}
}}
但是我得到以下错误。
没有标签为“webserver&&serverex&&composeserver”的节点</p>
上面的stage是一个例子,我在同一个stage下有多个脚本。
我可以使用并行来实现这一点,但它会是重复的,因为我需要在 3 个节点上运行它。
我可以知道 AND (&&) 运算符有什么问题吗?根据链接中提到的答案,它是否从 Jenkins 中删除,因为它看起来像以前一样工作?
解决方案
我认为你误解了这个答案。您只能在 中引用单个节点node([...])
,这&&
允许您声明 jenkins 在选择适当节点时将查找的多个标签。
例如,当您有带有标签的代理 A 和带有 的maven windows selenium
代理 B,带有maven linux docker
的代理 C 时maven gcc linux
,node('maven')
将根据执行程序的可用性选择节点 A、B 或 C,当您在某些仅 linux 的sh
步骤中混合时,这可能是一个问题,因此您可以用于node('maven && linux')
让詹金斯选择后两个都包含这些标签的代理之一。
如果你想在多个节点上运行相同的东西,你可以遍历一个节点标签数组。
def labels = ['label1', 'label2']
for (label in labels) {
node(label) {
stage('Running on ' + label){
// Do stuff
}
}
}
推荐阅读
- typescript - 将类型名称转换为实际类型
- python - 安装 Django 的本地 git 存储库时出现无效要求错误
- powerbi - 查询编辑器或原始表中未显示的表和数据视图中的 Power BI 重复值
- javascript - 蛇游戏(按键)
- php - 来自 Google 搜索 API“findplacefromtext”的 ZERO_RESULTS
- linux - 没有 MongoDB 版本可用于您的部署。运维管理器 mongodb
- c# - .NET Core 2.2 Web API 中的简单/基本页码和限制返回数据的大小
- java - java.lang.IllegalArgumentException:没有实现由指定的模式语言的 SchemaFactory:http://www.w3.org/XML/XMLSchema/v1.1
- javascript - 我无法从这个 AJAX 请求中返回值,我尝试过但我得到了未定义,为什么?
- node.js - 在部署时跳过应用服务中的端口运行状况检查?