将Jenkins的工作限制为Linux奴隶

时间:2015-04-13 15:54:21

标签: jenkins

如何将我的Jenkins作业限制为仅在Linux从属服务器上运行?

我勾选了限制此项目可以运行的位置框,但似乎我只能将奴隶名称放在那里。

我想说使用在linux平台上运行的任何奴隶

类似于teamcity.agent.jvm.os.name等于TeamCity中的Linux选项。

编辑:到目前为止,您似乎必须手动编辑每个奴隶的标签(或编写脚本)。不幸的是,我无权更改这些内容,所以如果有人提出替代方案或插件或其他内容,我会保持这个问题。

2 个答案:

答案 0 :(得分:4)

  1. 如果Linux从站的数量较少,您可以去配置从站的选项并添加标签为' Linux'到它。
  2. 然后转到作业配置并选择限制此项目可以投放的位置'并将标签添加为Linux。 :)
  3. 如果Linux从站的数量很大,那么手动配置所有从站是一项繁忙的任务。您可以使用groovy轻松自动化它。创建一个作业测试工作,它将使用' Linux'更新linux奴隶的所有标签。标签。选择构建步骤为groovy 并粘贴以下脚本:

    // First Get Node Instance<br>
    // Then for each node instance check if its 'Remote FS root' starts 
    // with forward slash. Which means its a linux slave. If it is then 
    // add label Linux to it.
    def Nodes=jenkins.model.Jenkins.instance.getNodes();
    Nodes.each { currentNode ->
      if (currentNode.getRemoteFS().toLowerCase().startsWith("/")) {
         if (! currentNode.getLabelString().contains("Linux")) {
          currentNode.setLabelString(currentNode.getLabelString()+" Linux")
        }
      }
    }
    

答案 1 :(得分:3)

你快到了。只需使用标签“linux”等标记您的linux从站,然后将该字符串输入限制此项目可以运行的位置字段。使用Manage Jenkins&gt;管理节点以将标签添加到适当的从属设备。