【问题标题】:Is there a function in any Jenkins API that provides me with a slave nodes COMPUTERNAME/Hostname任何 Jenkins API 中是否有一个函数可以为我提供从节点 COMPUTERNAME/Hostname
【发布时间】:2019-06-13 13:45:21
【问题描述】:

我需要收集在我的 jenkins 主节点上设置的 jenkins 从节点的所有主机名的列表。许多节点都设置了类似SLAVE NODE EXAMPLE 的名称,而不是将它们的服务器名称作为节点的名称。我知道如何从 UI 中实现这一点。但是我需要通过 python 访问它,因为我设置了许多节点,并且手动通过每个节点将是一个漫长的过程。

我正在使用 python-jenkins api,它具有获取所有节点及其配置的功能。使用get_node_config(name)。但是它没有为我提供COMPUTERNAME。我似乎也无法在 Jenkins 主目录中找到包含该信息的文件。

【问题讨论】:

    标签: python api jenkins jenkins-api


    【解决方案1】:

    如果有帮助,这里有一个 groovy 脚本。从控制台运行。注意:节点必须在线才能查询。

    Jenkins.instance.slaves.each {
       print it.getNodeName() + ' : '
       if ( it.getComputer().isOnline() ) {
          println it.getComputer().getHostName() + ' : ' + it.getComputer().getOSDescription()
       } else {
          println ' - offline -'
       }    
    }
    return 0
    

    请参阅 Jenkins API - Computer

    【讨论】:

    • 这很棒。谢谢!
    • 如果效果很好,请考虑将其标记为已回答(即使不是 python)。
    【解决方案2】:

    获得节点名称后,您可以使用该名称获取有关 with 的更多信息 get_node_info(name, depth=0)

    nodes = get_nodes()
    for n in nodes:
       info = get_node_info(n[name])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2020-05-02
      • 2019-10-11
      • 2021-09-03
      相关资源
      最近更新 更多