栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

python管理jenkins持续集成

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python管理jenkins持续集成

一,jenkins安装部署

Linux下Jenkins 安装方式很多,源码包(WAR 文件)安装,镜像服务安装,yum命令安装等
命令安装最简单,其他方式可以自己baidu
安装步骤如下

1, 安装命令
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

sudo yum install jenkins
2, 修改配置
# 修改端口
vim /etc/sysconfig/jenkins

3,启动命令
service jenkins start  启动

service jenkins stop   停止

service jenkins restart  重启
4,首次登录

第一次登录需要密码,根据提示:

cat /var/lib/jenkins/secrets/initialAdminPassword


首次登录,需要下载一些插件,可以使推荐的插件,也可以自己选择下载


安装完成后,自动进入管理账户注册页面,注册好了,进入登录页面

5,jenkins一般和项目交互,需要一些用户凭证(eg:git)

二,python-jenkins

工作中我们会想通过http方式运行Jenkins job,这样就不需要每次都进入jenkins的页面操作了,而且可以统一集成。
在Jenkins官网上的Python-Jenkins API。
Python-Jenkins官网:https://pypi.python.org/pypi/python-jenkins/
Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html

1,安装
pip install python-jenkins
2,基本使用
import jenkins
# 登录jenkins
server = jenkins.Jenkins('http://192.168.59.149:8080', username='user', password='password')

# 构建参数化job
server.build_job('jobname', {'param1': 'aaa', 'param2': 'bbb'})
3,项目封装
import jenkins
import logging

# 日志格式设置
logger = logging.getLogger('jenkins')

class JenkinsDevOps:
    def __init__(self, jenkins_info_dict):
        self.url = jenkins_info_dict["url"]
        self.username = jenkins_info_dict["username"]
        self.password = jenkins_info_dict["password"]
        self.jenkins_server = jenkins.Jenkins(url=self.url, username=self.username, password=self.password)

    def determine_job(self, job_name):
        """
        检测项目是否存在
        :param job_name:  项目名称
        :return:
        """
        return self.jenkins_server.get_job_name(job_name)

    def build_job(self, job_name, parameters=None):
        """
        :param job_name: name of job
        :param parameters: parameters for job, or ``None``, ``dict``
        :return:
        """
        self.jenkins_server.build_job(job_name, parameters=parameters)

    def get_last_success_build(self, job_name):
        """
        获取上次成功的构建
        :param job_name:
        :return:
        """
        number = self.jenkins_server.get_job_info(job_name)["lastSuccessfulBuild"]["number"]
        return number

    def stop_job(self, job_name, number):
        """
        获取构建结果的日志
        :param job_name: 项目名称
        :param number: 构建号
        """
        self.jenkins_server.stop_build(job_name, number)

    def create_job(self, data):
   		"""
        新建项目job
        :param data:  包含job新建格式文本config.xml
        :return:
        """
        res = self.jenkins_server.create_job('app-run', open(data['config_xml'], encoding='utf-8').read())
        return res


if __name__ == '__main__':
    my_parameters = {"branch": "test", "item": "my_test_item"}
    my_jenkins_dict = {"url": "https://jenkins.xxx.cn/",
                       "username": "admin", "password": "xxxxxxxx"}
    item_name = "test-slave"
    # jenkins_main(my_jenkins_dict, item_name, my_parameters)
4,job新建格式文本config.xml


  
  
  false
  
    
      
        
          Branch
          分支
          dev
          false
        
        
          Version
          版本号
          7.0.0-devops
          false
        
      
    
  
  
    2
    
      
        http://gitlab.com/hermes/system/app-job.git
        e11f0f10-d1a9-4d36-86b5-9184051c8cc5
      
    
    
      
        $Branch
      
    
    false
    
    
  
  true
  false
  false
  false
  
  false
  
    
      bash /opt/newcicd/scripts/java_build_job.sh
      
    
  
  
  
[
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号