
自动化Jenkins管理?使用python-jenkins管理Jenkins
简介
本次我们将要学习JenkinsAPI接口,我们先用Python-jenkins这个库完成。
仓库Pypi :https://pypi.org/project/python-jenkins/
在线文档: http://python-jenkins.readthedocs.org/en/latest/
当前环境Python版本 v3.7.0
功能
- Create new jobs 创建新项目
- Copy existing jobs 复制已存在的项目
- Delete jobs 删除项目
- Update jobs 更新项目
- Get a job’s build information 获取一个项目的构建信息
- Get Jenkins master version information 获取Jenkins master的版本信息
- Get Jenkins plugin information 过去jenkins插件信息
- Start a build on a job 构建一个项目
- Create nodes 创建一个节点
- Enable/Disable nodes 启用/禁用节点
- Get information on nodes 获取节点信息
- Create/delete/reconfig views 创建/删除/更新视图
- Put server in shutdown mode (quiet down) 关机
- List running builds 列出构建中的项目
- Delete builds 删除构建
- Wipeout job workspace
- Create/delete/update folders 创建/删除/更新文件夹
- Set the next build number 设置下次构建ID
- Install plugins 安装插件
使用思路
例如我要创建一个项目
- 要先找到创建项目的方法
- 然后根据API文档查阅如何使用 每个接口的使用方法
- 打开一个python解释器调试
初始化配置
安装python-jenkins
测试
查看 所有的方法
do操作方法
功能 | python方法 |
项目操作 | create_job disable_job delete_job copy_job enable_job job_exists jobs_count upsert_job |
构建操作 | build_job delete_build build_job_url stop_build |
凭据操作 | create_credential delete_credentialcredential_exists |
视图操作 | create_view delete_view view_exists |
节点操作 | create_node disable_node delete_node enable_node node_exists |
晋级操作 | create_promotion delete_promotion promotion_exists |
取消队列 | cancel_queue |
检查jenkinsfile语法 | check_jenkinsfile_syntax |
检查项目信息 | debug_job_info |
文件夹操作 | is_folder create_folder |
安装插件 | install_plugin |
get获取方法
功能 | python方法 |
获取项目信息 | get_all_jobs get_job_config get_job_info get_job_info_regex get_job_name get_jobs |
获取构建信息 | get_build_console_output get_build_env_vars get_build_info get_build_test_report |
获取凭据信息 | get_credential_config get_credential_info list_credentials |
get_info | |
获取节点信息 | get_node_config get_node_info get_nodes |
获取插件信息 | get_plugin_info get_plugins get_plugins_info |
获取晋级信息 | get_promotion_config get_promotion_name get_promotions get_promotions_info |
获取队列信息 | get_queue_info get_queue_item |
获取运行中构建 | get_running_builds |
获取版本 | get_version |
获取视图信息 | get_view_config get_view_name get_views |
获取当前用户 | get_whoami |
jenkins_open | |
jenkins_request |
更新操作
功能 | python方法 |
关机 | quiet_down |
更新凭据 | reconfig_credential |
更新项目 | reconfig_job |
更新节点 | reconfig_node |
更新晋级 | reconfig_promotion |
更新视图 | reconfig_view |
重命名项目 | rename_job |
运行脚本 | run_script |
设置下次构建id | set_next_build_number |
演示实例
每个接口的使用方法:https://python-jenkins.readthedocs.io/en/latest/api.html
项目操作
我们需要认识一下Jenkins项目的config.xml,大部分API在创建项目的时候会使用xml文件。首先创建一个项目(任何类型的都可以)然后我们进入$JENKINS_HOME/jobs/目录查看我们这个项目生成的config.xml文件。
builds存放项目的构建信息。
config.xml
可以看到jenkins的文件存储都是以xml方式存储的。(后面我们需要利用这个xml创建一个新项目)
使用方法获取项目配置信息
掌握创建项目的方法使用
create_job
(name, config_xml)
- name 项目名称 字符串类型
- config_xml 配置文件 字符串类型
新建项目demo-test-02
验证项目是否创建成功
复制一个新项目demo-test-03
copy_job
(from_name, to_name)
- from_name 源项目 字符串类型
- to_name 目标项目 字符串类型
当源项目名称与目标项目名称一致的时候会报错。JenkinsException
写一个脚本用于项目创建
新建一个项目,增加一个参数srcType
用于分辨项目所使用的的版本控制系统类型。参数可以是(svn,git)。
我们要完成的是基于一个项目模板,创建新的项目并替换相关的参数。模板项目名称demo-devops-service
。
运行输出
效果
文章转载自公众号:DevOps云学堂
