Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 一种在自由式工作中通过标签请求可用詹金斯奴隶IP的方法?_Jenkins_Ip_Slave - Fatal编程技术网

Jenkins 一种在自由式工作中通过标签请求可用詹金斯奴隶IP的方法?

Jenkins 一种在自由式工作中通过标签请求可用詹金斯奴隶IP的方法?,jenkins,ip,slave,Jenkins,Ip,Slave,是否有可能请求Jenkins slave IP的列表, 詹金斯自由式工作的内部 执行shell脚本时 可能作为环境变量?您可以通过groovy确定从属节点的IP地址。看 因此,您可以按以下步骤进行操作: 创建一个groovy构建步骤,将感兴趣的所有从属服务器的IP地址写入一个文本文件 在shell脚本构建步骤中,从该文件读取IP地址 例如,此groovy代码将使用标签mylabel打印所有从属服务器的名称和IP地址: import hudson.model.Computer.ListPossib

是否有可能请求Jenkins slave IP的列表
詹金斯自由式工作的内部 执行shell脚本时


可能作为环境变量?

您可以通过groovy确定从属节点的IP地址。看

因此,您可以按以下步骤进行操作:

  • 创建一个groovy构建步骤,将感兴趣的所有从属服务器的IP地址写入一个文本文件
  • 在shell脚本构建步骤中,从该文件读取IP地址
  • 例如,此groovy代码将使用标签
    mylabel
    打印所有从属服务器的名称和IP地址:

    import hudson.model.Computer.ListPossibleNames
    
    slaves = Hudson.instance.slaves.findAll { it.getLabelString().split() contains 'mylabel' }
    slaves.each {
      println "slave '${it.name}' has these IPs: " +  it.getChannel().call(new ListPossibleNames())
    }
    
    样本输出:

    slave 'foo' has these IPs: [10.162.0.135]
    

    这个问题与这里回答的另一个问题非常相似:不,不是。在那里,你可以找到“如何获取某个特定从属服务器的ip地址”问题的答案,因此你必须知道它的名称。如我在问题中所述,我要求提供詹金斯奴隶IP的名单。因此,所有可用从机的IP或标签上的从机IP。要获得所有节点的名称,可以使用JSON API。假设Jenkins在localhost:8080上运行,那么localhost:8080/computer/api/jsonI更愿意在groovy级别上运行,因此您可以在一个干净的步骤中完成所有选择和报告工作。我将相应地延长安塞尔。