设为首页 收藏本站
查看: 1990|回复: 0

[经验分享] Python-Jenkins API使用 —— 在后端代码中操控Jenkins

  [复制链接]

尚未签到

发表于 2018-9-16 08:57:53 | 显示全部楼层 |阅读模式
  最近在工作中需要用到在后台代码中触发Jenkins任务的构建,于是想到Jenkins是否有一些已经封装好的API类库提供,用于处理跟Jenkins相关的操作。下面就简单介绍下我的发现。
Linux Curl
  首先找到的是Jenkins官网的wiki:https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
  在官网首页就有关于触发job的方法:


  个人尝试了下,该方式是通过命令行直接调curl去发POST请求的方式来触发job的构建。对于用openid管理的Jenkins,需要带上参数--user USER:PASSWORD,其中的USER和PASSWORD不是你的openID登录的账号密码,而是登录后显示在Jenkins中的User>  用openID登录jenkins —> 点击右上角的用户名,进入用户个人页面 —>  点击左边的设置,打开设置页面 —> API Token,Show Api Token...
  如果需要参数化构建job,则要加上--data-urlencode json='{"parameter": [{"name":"param_name1","value":"param_value1"}, {"name":"param_name2","value":"param_value2"}]}'
  显然,这种方式比较繁琐,很容易出现因格式不正确导致触发任务失败,而且这种方式不能帮助我们获取更多的关于job的信息以便于我们后续对job的状态进行跟踪。
Python-Jenkins
  继续寻找,然后我在Jenkins官网上找到了Python-Jenkins API,仔细阅读后发现,它几乎涵盖了大部分Jenkins的操作,大大方便了我们在后台进行对Jenkins的一些列操作。
  Python-Jenkins官网:https://pypi.python.org/pypi/python-jenkins/
  Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html
  下面简单介绍下如何使用Python-Jenkins:
  1. 安装
  sudo pip install python-jenkins
  2. 进入python命令环境或创建新的.py文件jenkinsApiTest.py
  import jenkins
  #定义远程的jenkins master server的url,以及port
  jenkins_server_url='xxxx:xxxx'

  #定义用户的User>  user_id='xxxx'
  api_token='xxxx'
  #实例化jenkins对象,连接远程的jenkins master server
  server=jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)
  #构建job名为job_name的job(不带构建参数)
  server.build_job(job_name)
  #String参数化构建job名为job_name的job, 参数param_dict为字典形式,如:param_dict= {"param1":“value1”, “param2”:“value2”}
  server.build_job(job_name, parameters=param_dict)
  #获取job名为job_name的job的相关信息
  server.get_job_info(job_name)
  #获取job名为job_name的job的最后次构建号
  server.get_job_info(job_name)['lastBuild']['number']
  #获取job名为job_name的job的某次构建的执行结果状态
  server.get_build_info(job_name,build_number)['result']  
  #判断job名为job_name的job的某次构建是否还在构建中
  server.get_build_info(job_name,build_number)['building']
  3. 更多其他的API可以参考Python-Jenkins API:http://python-jenkins.readthedocs.io/en/latest/api.html
  本文出自https://www.cnblogs.com/znicy/p/5498609.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-584371-1-1.html 上篇帖子: 根据jenkins更新Log检查文件更新并比较两文件内容 下篇帖子: Jenkins与gitlib实现自动化部署1-myblog
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表