jenkins安装和配置

一、持续集成介绍

1.1、持续继承测试带来的优点

  • 快速发现错误:每完成一点更新,就集成到对应的分支,可以快速发现错误,定位错误也比较容易。
  • 防止分支大幅偏离主干:如果不是经常集成,分支或者主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

1.2、持续集成流程-CI

1.3、CI、CD

1.4、Jenkins 的优势

jenkins安装和配置_第1张图片


二、Jenkins搭建与使用配置

2.1、docker部署 jenkins

  • 下载:docker pull jenkins/jenkins:lts-centos7
  • 创建docker的文件映射卷: docker volume create jenkins
  • 创建实例: docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins:/var/jenkins_home jenkins/jenkins:lts-centos7
  • 获得初始管理密码: docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

修改时区

  • 删除已有实例:docker rm -f jenkins
  • 重新创建实例并设置时区:docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai jenkins/jenkins:lts-centos7
JAVA_OPTS=-Duser.timezone=Asia/Shanghai -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8

端口

8080端口:jenkins服务器的对外URL地址

50000端口:slave节点与jenkins的通讯端口

需要注意的是,云服务器上部署jenkins,8080和50000端口都需要开放,否则不能访问jenkins和不能连接上节点。

2.2、Jenkins 节点管理

  • Jenkins的任务可以分布在不同的节点上运行
  • 节点上需要配置Java运行时环境,java version > 1.5
  • 节点支持 Windows,Linux,Mac
  • Jenkins运行的主机在逻辑上是master节点
Jenkins Master
Jenkins Slave
Jenkins Slave
Jenkins Slave

slave 节点配置

Manage Jenkins -> Manage Nodes and Clouds -> 新建节点

执行器数量(Number of executors):一般根据电脑的性能,一般UI测试配置1,接口测试可以配置多个

  • SSH启动代理,推荐linux/mac:https://www.cnblogs.com/zhongyehai/p/11337279.html

  • Java Web启动代理节点,推荐windows:https://blog.csdn.net/cjw1991/article/details/87904053

2.4、Jenkins权限控制

  • Jenkins 初始化过程中会先注册一个管理员用户
  • 管理员用户再创建后续的一般用户
  • 管理员用户登录进行后续配置
  • 启用用户安全配置,Manage Jenkins -> Configure Global Security

新版本默认自动开启,
jenkins安装和配置_第2张图片
注册用户的操作的权限控制

  • 必须由管理员来完成
  • 用户可以自由注册,启用之后在Jenkins首页可以看到Sign-up入口

注册权限配置位置在“Configure Global Security”,团队规模不大(10人左右)建议不要启用用户自由注册选项,减少用户管理时间成本。

配置好权限之后,管理员可以从后台直接添加用户,从Jenkins管理控制台页面 -> Manage Jenkins -> Manage Users -> 新建用户

用户权限控制
jenkins安装和配置_第3张图片

2.5、常用插件

插件的安装方法

  • 进入插件安装页面:Manage Jenkins -> Manage Plugins -> Available(可选插件)
  • 在filter 搜索框中输入需要安装的插件
  • 如果插件存在,勾选插件,然后点击“Download now and install after restart”

推荐需要安装的插件

  • Multiple SCMs:多版本管理
  • Rebuilder:重新构建
  • Safe Restart:安全重启
  • Pipeline:流水线
  • Text Finder:文件信息查找
  • Blue Ocean:美化jenkins界面
  • Allure

2.6、报警机制

2.6.1、配置Email

用户Jenkins构建任务之后发送email通知

  • 需要下载插件,方便设置格式化邮件:Email Extension Plugin,Email Extension Template Plugin
  • 配置管理员邮箱:系统管理 -> 系统配置 -> Jenkins Location
    在这里插入图片描述
  • 配置邮件发送规则
    jenkins安装和配置_第4张图片
    Extended E-mail Notification 切记同样需要配置
    jenkins安装和配置_第5张图片

2.6.2、Jenkins模板配置

Jenkins可以根据你配置的邮件模板格式发送结果邮件

通过Jenkins的参数定制自己的Email模板,常用的参数key值如下

  • $BUILD_URL:脚本构建详情URL地址
  • $BUILD_STATUS:构建结果
  • $BUILD_NUMBER:构建脚本编号
  • $PROJECT_NAME:构建脚本名称
  • $JOB_DESCRIPTION:构建项目描述
  • $CASE:脚本启动原因

设置报警规则

在这里插入图片描述
jenkins安装和配置_第6张图片

2.6.3、具体项目中增加构建后操作步骤

jenkins安装和配置_第7张图片
在Advanced Settings中配置需要发送邮件的人
在这里插入图片描述
jenkins安装和配置_第8张图片
邮件模板

DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志title>
head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
      offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
       style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
    <tr>
        <td>
            <h1><span style="color: #0000FF; ">构建结果 - ${BUILD_STATUS}span>h1>
            <h6><span style="color: red">本邮件是Jenkins程序自动下发的,请勿回复!span>h6>
        td>
    tr>
    <tr>
        <td><br/>
            <b><span style="color: #0B610B; ">构建信息:span>b>
            <hr size="2" width="100%" align="center"/>
        td>
    tr>
    <tr>
        <td>
            <ul>
                <li>项目名称:${PROJECT_NAME}li>
                <li>构建编号:第${BUILD_NUMBER}次构建li>
                <li>触发原因:${CAUSE}li>
                <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}consolea>li>
                <li>构建地址:<a href="${BUILD_URL}">${BUILD_URL}a>li>
                <li>工作目录:<a href="${PROJECT_URL}ws">${PROJECT_URL}wsa>li>
                <li>项目地址:<a href="${PROJECT_URL}">${PROJECT_URL}a>li>
                <li>修改记录:<a href="${PROJECT_URL}changes">${PROJECT_URL}changesa>li>
                <li>变更集:${JELLY_SCRIPT,template="html"}li>
            ul>
        td>
    tr>
    <tr>
        <td><b><span style="color: #0B610B; ">失败的测试结果:span>b>
            <hr size="2" width="100%" align="center"/>
        td>
    tr>
    <tr>
        <td>
            <pre style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">${FAILED_TESTS}pre>
            <br/>td>
    tr>
    <tr>
        <td><b><span style="color: #0B610B; ">构建日志 (最后 100行):span>b>
            <hr size="2" width="100%" align="center"/>
        td>
    tr>
    <tr>
        <td><textarea cols="80" rows="30" readonly="readonly"
                      style="font-family: Courier New">${BUILD_LOG, maxLines=100}textarea>
        td>
    tr>
table>
body>
html>

2.7、矩阵job与父子job

Jenkins 父子多任务运行

  • 任务启动的触发条件:其它任务的运行结果
  • 前驱任务成功的条件下被触发
  • 前驱任务失败的条件下被触发
  • 前驱任务不稳定的条件下被触发
  • 适用场景:有先后次序关系的任务,比如:部署环境任务 -> 验收测试任务

父job配置
jenkins安装和配置_第9张图片

子任务job配置
jenkins安装和配置_第10张图片

你可能感兴趣的:(持续集成,jenkins)