当前位置: 首页 > 面试题库 >

通过Jenkins REST API获取IP地址?

海鸣
2023-03-14
问题内容

我的任务是对詹金斯的一些工作进行健康检查。这个想法是通过Jenkins rest
API获取作业的状态和关联的IP地址,因此我可以使用该信息与另一个Restful
API进行接口。我创建了一个Groovy脚本,该脚本成功解析了Jenkins作业并获取了它们的状态(无论它们是否正在运行),但是我还没有找到一种将这些作业与其IP地址关联的方法。有没有办法通过其余的API获取Jenkins中从站的IP地址,如果没有,是否有另一种获取上述IP地址的方法

这是我到目前为止获得的代码,它就像一个超级魅力:

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7')
import groovyx.net.http.RESTClient
import groovy.json.JsonSlurper

def jenkinsClient = new RESTClient( 'myJenkinsURL' )
def monitorClient = new RESTClient( 'myOtherRestfulAPIURL' )
monitorClient.auth.basic "<username>", "<pass>"
jenkinsClient.setHeaders(Accept: 'application/json')
monitorClient.setHeaders(Accept: 'application/json')

def jobs = []
def jenkinsGetJobs = jenkinsClient.get( path: 'view/Events/api/json', contentType: 'text/plain' )
def jenkinsGetJobsSlurp = new JsonSlurper().parse(jenkinsGetJobs.data)
for (def j in jenkinsGetJobsSlurp.jobs ){
    jobs.add(j.name)
}
//Can we get a list of IPS?

for(def job in jobs){
        def jenkinsResp = jenkinsClient.get( path : 'view/Events/job/' + job + '/api/json', contentType: 'text/plain', query: [depth:"1"])
        def jenkinsSlurp = new JsonSlurper().parse(jenkinsResp.data)
       // println slurp
        if (jenkinsSlurp.builds[0].building == true){
            println "The " + job + " job is running."
            //Make a call to other Restful API here

        }
        if (jenkinsSlurp.builds[0].building == false){
            println "The " + job + " job is not running."
        }
}

在标有//的注释部分中,我们可以获取IPS列表吗?我想以某种方式使用Jenkins Rest API来获取Jenkins奴隶的IP列表。

我可以通过其余的API来做到这一点吗?如果没有,还有其他方法吗?通过CLI,也许?在Jenkins
API文档中的任何地方都没有看到getIP()方法,但是我对此还很陌生,所以我可能只是缺少一些简单的东西。


问题答案:

您可以通过REST API在从站上执行groovy脚本,从而可以获得从站的ip地址。这是curl的示例,但是您可以对其进行调整以在代码中使用:

$ curl -u username:password -d "script=println InetAddress.localHost.hostAddress" jenkins_url/computer/node_name/scriptText
# 192.168.0.104

节点 :要获取特定从站的IP地址,您必须知道它的名称。渐变节点名称查询很容易jenkins_url/computer/api/json

我将尝试抓取节点页面的HTML,以从群体从属描述中获取IP

由于奴隶可能通过JNLP连接,并且在该HTML页面上没有IP,因此这并不总是有效。



 类似资料:
  • 我对许多AJAX调用运行安全检查,以查看是否有记录在案的相同IP请求。 我使用了以下一组类函数来建立IP(可以通过负载平衡器来实现,因此采用了纵向方法)。 问题是,我的用户通过代理进行操作时遇到了问题。有人能说明原因吗?我已经使用基本免费代理的在线尝试和模拟,但它似乎没有得到可变IP或任何东西-所以我不知道为什么这会说这两个IP不匹配。

  • 问题内容: 我知道对此问题的最初反应是“否”和“无法完成”,并且“您不需要它,您做错了什么”。我正在尝试获取用户的LAN IP地址,并将其显示在网页上。为什么?因为这就是我正在处理的页面的全部内容,因此会显示有关您的尽可能多的信息 因此,除了向用户展示以供参考之外,我实际上并没有对IP做任何事情。我曾经通过使用一个小的Java小程序来做到这一点。效果很好。但是这些天来,浏览器让您多次达成共识和信任

  • 问题内容: 我的机器上运行了一个简单的node.js程序,我想获取运行该程序的PC的本地IP地址。如何使用node.js获得它? 问题答案:

  • 问题内容: 我正在尝试使用Java获取我的Internet IP地址,但是当我的IP地址为192.168.0.xxx时,我一直在获取本地地址(即:127.0.0.1) 我正在使用该行: 这似乎是获取IP地址的标准方法,但这不是我想要的。每个教程都说要使用此行,所以我有些困惑。 有人可以让我知道如何获取正确的IP地址吗? 我在连接到WiFi的设备上运行,但未使用任何电缆。我正在使用ifconfig

  • get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址

  • 本文向大家介绍Python实现通过解析域名获取ip地址的方法分析,包括了Python实现通过解析域名获取ip地址的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现通过解析域名获取ip地址的方法。分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: 执行函数 案例2: PS:这里再为大家推荐一款功能相似的在线工具供大家参考: IP地址归属地在