前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pythonl控制jenkins操作

pythonl控制jenkins操作

作者头像
py3study
发布2020-01-10 16:43:08
9240
发布2020-01-10 16:43:08
举报
文章被收录于专栏:python3python3

jenkins不仅可以集成python进行操作,同时也可以被集成,通过python在后端代码中操控Jenkins

通过python来操作控制Jenkins, 有两个包可以使用,JenkinsAPIPython-Jenkins

JenkinsAPI: https://pypi.python.org/pypi/jenkinsapi

Python-Jenkins官网:https://pypi.python.org/pypi/python-jenkins/

Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html

下面是Python-Jenkins的一些使用,供参考

代码语言:javascript
复制
#!/usr/bin/env python
#coding:utf-8

'''
FuncName: JzPythonJenkins.py
Desc: python control jenkins
Date: 2017-09-18 08:30
Author: johnny
'''

import jenkins
class JzPythonJenkins(object):
    '''
    Installing:
        pip install python-jenkins

    Import:
        import jenkins
    '''
    def __init__(self):
        username = 'admin'
        password = 'admin'
        url = 'http://localhost:8080/jenkins'
        timeout = 1
        self.server = self.Connect(url, username, password, timeout)

    def Used(self):
        self.get_version()

    def Connect(self,url, username, password, timeout):
        '''Create handle to Jenkins instance'''
        self.server = jenkins.Jenkins(url, username, password, timeout)
        return self.server

    def get_version(self):
        '''get jenkins version'''
        version = self.server.get_version()
        print version

    def job(self):
        # 创建Project,内容为空
        self.server.create_job('test', jenkins.EMPTY_CONFIG_XML)

        # job构建empty
        self.server.build_job('empty')

        # 获取job配置 prints XML configuration
        my_job = self.server.get_job_config('empty')
        print my_job

        # 禁用Project
        self.server.disable_job('empty')

        # 拷贝Project
        self.server.copy_job('empty', 'empty_copy')

        # 启用已配置好Project
        self.server.enable_job('empty')

        # 删除Project
        self.server.delete_job('empty')

    def view(self):
        # 创建空视图
        self.server.create_view('EMPTY', jenkins.EMPTY_VIEW_CONFIG_XML)

        # 获取视图的配置xml信息
        view_config = self.server.get_view_config('EMPTY')

        # 获取视图信息
        views = self.server.get_views()
        print views

        # 删除视图
        self.server.delete_view('EMPTY')

    def plugins(self):
        # 获取插件信息
        plugins = self.server.get_plugins_info()
        print plugins

    def node(self):
        # 创建node节点
        self.server.create_node('slave123456')

        ## create node with parameters
        params = {
            'port': '22',
            'username': 'juser',
            'credentialsId': '10f3a3c8-be35-327e-b60b-a3e5edb0e45f',
            'host': 'my.jenkins.slave11'
        }
        ## 名称,描述,远程工作目录,标签,用法,启动方法(连接方式),参数(如host)
        self.server.create_node(
            'slave11',
            nodeDescription='my test slave',
            remoteFS='/home/juser',
            labels='precise',
            exclusive=True,
            launcher=jenkins.LAUNCHER_SSH,
            launcher_params=params)

        # 获取node信息
        nodes = self.server.get_nodes()
        print nodes

        # 获取node配置信息
        node_config = self.server.get_node_info('slave123456')
        print node_config

        # 连接或中断node
        self.server.disable_node('slave11')
        self.server.enable_node('slave11')

    def queue(self):
        # 获取信息
        queue_info = self.server.get_queue_info()
        print queue_info

if __name__ == "__main__":
    JzPythonJenkins = JzPythonJenkins()
    JzPythonJenkins.Used()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档