jenkins python_3.【小试】Python远程操作Jenkins

本文介绍了如何使用python-jenkins库在Python 3.6.3环境下远程操作Jenkins。首先,文章讲解了python-jenkins库的功能和安装方法,接着讨论了如何调整Jenkins的安全设置以允许Python控制。然后,详细阐述了如何获取和管理API Token,最后展示了一个获取Jenkins版本号的Python代码示例,并分享了在操作过程中遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

Jenkins除了有GUI界面,还提供了RestAPI的方式来方便用户,使用代码(Python、Java)控制Jenkins的工作流。

【本文要点】

使用python-jenkins库和python3.6.3作为基础。

Jenkins被安装在虚拟机上,开放部分Jenkins的“安全设置”。

设置Jenkins中当前登录用户的API Token。

在Pycharm中写一些简单的代码来控制远程的Jenkins。

1.Python-Jenkins库

1.1 What is python-jenkins?

Python Jenkins is a python wrapper for the Jenkins REST API which aims to provide a more conventionally pythonic way of controlling a Jenkins server. It provides a higher-level API containing a number of convenience functions.

1.2 Python-Jenkins能做什么?

Python-Jenkins可以做很多事情见图1所示:

图1 Python-Jenkins能做什么?

1.3 Python-Jenkins的安装

如果你的Python环境中有pip管理工具,请使用pip进行python-jenkins库文件的安装,安装命令如下所示。【PS:建议python版本使用3.x】

#使用pip进行python-jenkins库的安装

$ pip install python-jenkins

2.修改Jenkins的“安全设置”

笔者所用的Jenkins版本为2.89.3,对于Jenkins2.x以上的版本,安全防护更加的严格。因此,我们需要降低一点Jenkins的安全防护级别,将“安全矩阵”替换为“登录用户可以做任何事”。图2和图3为具体更改后的安全配置情况。

图2 具体更改后的安全配置情况--上半部分

图3 具体更改后的安全配置情况--下半部分

修改完“全局安全配置”后,请重启您的Jenkins服务

[PS]重启Jenkins服务可以采用在地址栏输入

3.Jenkins中设置当前登录用户的 API Token

只有已登录的用户才能设置自己相对应的API Token,API token是用户登录操作Jenkins的另外意义上的Password,可以将API Token 等价于Password。

3.1 启用用户所属的API Token

当你成功登录进Jenkins系统,根据图3所示的操作进行Show API Token 的操作,你就会得到当前用户唯一的API Token,API Token的用法见本文第四节(编写python控制jenkins的代码)

图3 启用用户所属的API Token

3.2 修改用户所属的API Token

如果,你想修改你的API Token,请根据图4所示进行修改操作。

图4 修改用户所属的API Token

4.编写python控制jenkins的代码

下面是一个获取Jenkins版本号的小Demo:

import jenkins

#远程Jenkins的地址

jenkins_server_url = 'http://192.168.1.13:8080'

#用户名

user_id = 'admin'

#用户的token值(每个user有对应的token----如本文第3.1节所示)

api_token = 'ea8c65123036cf95cd038b1d8e5cc3c9'

#登录密码

#passwd = 'admin'

#server = jenkins.Jenkins(jenkins_server_url, username=user_id, password=passwd)

#使用 API_Token 进行Jenkins登录操作

server = jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)

#使用get.version()方法获取版本号

version = server.get_version()

print(version)

#server.build_job('oschina_selenium_docker')

图5为Jenkins GUI上的版本号信息:

图5 Jenkins GUI上的版本号信息

图6为Python代码执行后获取Jenkins版本号的结果:

图6 Python代码执行后获取Jenkins版本号的结果

笔者遇到的坑点与填坑

【坑点1】一定要修改Jenkins的“全局安全设置”,不然代码运行时就会报错“jenkins.BadHTTPException: Error communicating with server[http://192.168.1.13:8080/]”。

【填坑1】要想解决坑点1,请具体本文【图2图3】进行设置Jenkins的【全局安全配置】即可。

更多Python代码方式操作Jenkins的事例代码请访问Pthon-Jenkins官方。

本文END,请换一种方式体验下Jenkins的不同玩法!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值