Jenkins - 如何防止作业在特定的奴隶上运行

标签 jenkins master-slave

我有一个要求,我需要运行 Jenkins 作业,它将运行一些集成测试,因为这些集成测试需要一些服务,这些服务只能在一个特定的从站上使用,我想确保特定的工作只在那个从站上运行.

假设我有 job-1、job-2、job-3 和 slave-1 到 salve-20 我想确保只有 job-1 可以在 slave-1 上运行,所有其他作业(job-2、job-3)都可以在任何 salve 上运行,但不能在 slave-1 上运行

我可以通过启用选项来实现其中的一部分:“限制可以运行该项目的位置”,这样 job-1 将始终在 slave-1 上运行

问题是如何限制其他作业在slave-1上运行。

最佳答案

为此,我认为最好从节点的角度来限制,而不是限制所有作业。
打开节点配置时,您可以指定如何使用该节点。默认是尽可能使用它(为了自动减少master本身的负载)。
然而,我们在这种情况下使用的是仅当要运行的作业将其定义为要在其上运行的所需节点时才使用此节点。

Jenkins node configuration

例如,我们有一个节点来运行我们的 UI 测试。它应该只运行 UI 测试,而不是其他任何东西。指定 UI 测试的作业在其标签表达式中设置了此节点,所有其他作业的表达式为空 - 这意味着它们可以在任何地方运行 - 但节点配置限制任何其他作业在该节点上运行。

关于Jenkins - 如何防止作业在特定的奴隶上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41899082/

相关文章:

java - Jenkins Gradle 测试在 Commons Configuration 上失败

python-3.x - HPC SLURM 和对主从系统中支持 MPI 的应用程序的批量调用

MySQL 复制主控 - master

c - 带有 pthread 的 Buddhabrot 分形

jenkins - SonarQube 扫描仪执行期间出错。 'src' 的文件夹 'SonarTest' 不存在

c# - 我必须做什么才能使断言不再阻止自动化测试?

jenkins - 如何从管道作业访问 git 分支名称?

node.js - 使用 web api 而不是 tcp 套接字进行主/从通信是个坏主意吗?

jenkins - 具有多个用户的多个从站

jenkins - 使用Jenkins运行Docker容器