pythonl控制jenkins操作

来源:互联网 发布:正见 佛陀的证悟 知乎 编辑:程序博客网 时间:2024/06/03 23:30

本人新博客地址

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的一些使用,供参考

#!/usr/bin/env python#coding:utf-8'''FuncName: JzPythonJenkins.pyDesc: python control jenkinsDate: 2017-09-18 08:30Author: johnny'''import jenkinsclass 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_infoif __name__ == "__main__":    JzPythonJenkins = JzPythonJenkins()    JzPythonJenkins.Used()
原创粉丝点击