运行 在具有相同标签的不同节点上并行阶段
Run stage in parallel on different nodes with the same label
我有什么:有一些并行阶段的工作:
pipeline {
agent none
stages {
stage('Run Tests') {
parallel {
stage('Test 1') {
agent {
label "agent1"
}
steps {
sh "echo 1"
}
}
stage('Test 2') {
agent {
label "agent1"
}
steps {
sh "echo 1"
}
}
}
}
}
}
我想 运行 在不同节点上并行执行阶段:如果第一阶段采用执行程序,则第二阶段应在另一个带有标签“agent1”的新节点上执行。
我使用标签“agent1”配置了单个节点,两个阶段都在同一节点上执行。
当我再配置一个节点时,阶段在不同的节点上执行。我应该如何更改管道以告诉 Jenkins 运行 每个阶段在单独的节点上?比方说,我将再添加两个阶段,我想 运行 它们在四个单独的物理节点(在我的例子中是 EC2)上。
节点配置“执行器数量”设置为1,“最小实例数”设置为0,“最小备用实例数”设置为0,“实例上限”为空。
假设您使用的是 Amazon EC2
插件 有一个不错的选项,您可以为每个 AMI 配置名为 Maximum Total Uses:
Will set a maximum total uses for slaves launched from this template. After running that amount of jobs, the slave will be terminated. Use '-1' for unlimited slave uses.
这意味着您可以将此值设置为 1 并且插件将在第一个作业(或您的情况下的阶段 agent
之后自动处理代理指令是每个阶段),并为下一份工作午餐一个新的。
这是一个很好的嵌入式机制,可确保每次执行作业(或阶段)总是 运行 在新代理上。
我有什么:有一些并行阶段的工作:
pipeline {
agent none
stages {
stage('Run Tests') {
parallel {
stage('Test 1') {
agent {
label "agent1"
}
steps {
sh "echo 1"
}
}
stage('Test 2') {
agent {
label "agent1"
}
steps {
sh "echo 1"
}
}
}
}
}
}
我想 运行 在不同节点上并行执行阶段:如果第一阶段采用执行程序,则第二阶段应在另一个带有标签“agent1”的新节点上执行。
我使用标签“agent1”配置了单个节点,两个阶段都在同一节点上执行。
当我再配置一个节点时,阶段在不同的节点上执行。我应该如何更改管道以告诉 Jenkins 运行 每个阶段在单独的节点上?比方说,我将再添加两个阶段,我想 运行 它们在四个单独的物理节点(在我的例子中是 EC2)上。
节点配置“执行器数量”设置为1,“最小实例数”设置为0,“最小备用实例数”设置为0,“实例上限”为空。
假设您使用的是 Amazon EC2 插件 有一个不错的选项,您可以为每个 AMI 配置名为 Maximum Total Uses:
Will set a maximum total uses for slaves launched from this template. After running that amount of jobs, the slave will be terminated. Use '-1' for unlimited slave uses.
这意味着您可以将此值设置为 1 并且插件将在第一个作业(或您的情况下的阶段 agent
之后自动处理代理指令是每个阶段),并为下一份工作午餐一个新的。
这是一个很好的嵌入式机制,可确保每次执行作业(或阶段)总是 运行 在新代理上。