Python远程访问jenkins API
2018-10-29 本文已影响52人
一叶一声秋
Jenkins具有远程访问API的功能,可以支持python\Ruby\Java等,本文着重介绍python的方式,其他方式请移步https://wiki.jenkins.io/display/JENKINS/Remote+access+API
目前开发的python库有两个,JenkinsAPI 和 Python-Jenkins,这两个库的功能都差不多,本文将介绍前者的使用。
1 开通jenkins高级权限的帐号
要使用remote API功能,第一步必须先在jenkins注册帐号密码,并且具有对应的权限。假设注册的高级用户名为admin,密码为test1234
2 关闭防止跨站点请求伪造
重要:jenkins服务器默认是开启防止跨站点请求伪造的,因此需要先将其关闭,否则会出现403错误反馈码或则类似以下信息的反馈
HTTP ERROR 403
No valid crumb was included in the request
关闭的方法:
jenkins主界面 --- 系统管理 --- 全局安全配置 --- 跨站请求伪造保护 下
勾掉“防止跨站点请求伪造”
应用并保存
image.png
3 安装jenkinsapi
使用pip安装
pip install jenkinsapi
4 使用jenkinsapi
连接jenkins
username = 'admin'
password = 'test1234'
jenkins = Jenkins('http://localhost:8888', username=username, password=password)
获取当前的job列表
jenkins.keys()
获取某个job的构建情况
job=jenkins.get_job(jobName)
build=job.get_last_completed_build()
#构建号
print(build.buildno)
# url
print(buil.baseurl)
# 构建结果
data=build.__dict__['_data']
result=data['result']
#构建时长
duration=data['duration']
...
获取job的配置
config =jenkins[jobName].get_config()
job构建
jenkins.build_job(jobName, params)