PHP利用Rest API实现远程操控Jenkins

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaobai_ol/article/details/79380850

我们知道,Jenkins的Rest API可以使我们更加方便的去操控Jenkins。curl可以很容易的利用它去实现管理jenkins的配置和job。

关于用curl工具去操控jenkins这里不再提,具体可以详细看这篇博客点击打开链接。这里要说的使用php去实现curl工具同样的功能。我们知道,php自身包含的有curl库,那么我们也完全可以用它自己的库去实现。

通过刚刚那篇博客的介绍,我们可以大概的得到,要获取jenkins的配置或者job信息,其实就是”对一个网址发出get请求,获取请求的结果。”例如,获取job名为“jobName”的第2次构建的状态信息,则curl命令为

curl -XGET http://jenkinsServer/job/jobName/2/api/json

而要进行创建job或更改job、删除job,其实就是“对一个网址发出post请求”,其中若是要更改job或创建job,还需要将新job的对应的配置信息(xml形式)post上去。

下面主要给出怎样用php的curl实现curl工具同样的功能

// jenkins账号、密码、服务器地址
$ciuser = 'user';
$cipwd = '1234';
$home_url = 'http://jenkinsServer/';


// 获取job的信息或状态
function getCurl($url){
    //初始化
    $curl = curl_init();//设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 1);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //执行命令
    curl_setopt($curl, CURLOPT_USERNAME, $GLOBALS['ciuser']);
    curl_setopt($curl, CURLOPT_PASSWORD, $GLOBALS['cipwd']);
    $data = curl_exec($curl);
    //关闭URL请求
    curl_close($curl);
    //返回获得的数据

    return $data;
}


// 用于创建新的job、更改job等post请求
function postUrL($url, $xml=""){
    //初始化
    $curl = curl_init();
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 1);
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //设置post方式提交
    curl_setopt($curl, CURLOPT_POST, 1);
    //设置post数据
    curl_setopt($curl, CURLOPT_USERNAME, $GLOBALS['ciuser']);
    curl_setopt($curl, CURLOPT_PASSWORD, $GLOBALS['cipwd']);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type:text/xml'));
    //执行命令
    $data = curl_exec($curl);
    //关闭URL请求
    curl_close($curl);
}

若是创建或更改job,则postUrl函数的第二个参数$url应为对应job配置信息xml文件的文本内容。上面两个函数的第一个参数$url都为请求时的绝对地址。

刚学php,有不对的地方还请指正。网上还有另一种方法是用php的exec去调用curl命令。

猜你喜欢

转载自blog.csdn.net/xiaobai_ol/article/details/79380850
今日推荐