企业级CI/CD 持续集成/交付/发布

一:CI/CD

1、为什么要 CI / CD 方法简介

软件开发的连续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的机会。这种方法有三种主要方法,每种方法都根据最适合您的策略进行应用。
持续集成(Continuous Integration, CI): 代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈。
持续交付(Continuous Deployment, CD): 部署到测试环境、预生产环境。 
持续部署(Continuous Delivery, CD): 将最终产品发布到生成环境、给用户使用。
3-企业级CICD 持续集成交付发布 - 图1

2、理解持续集成、持续交付、持续部署

1、持续集成

持续集成(英语:Continuous integration,缩写为 CI),一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。
这个名称最早由葛来迪·布区(Grady Booch)在他的布区方法中提出,但是他并没有提到要每天集成数次。之后成为极限编程(extreme programming,缩写为XP)的一部分。在测试驱动开发(TDD)的作法中,通常还会搭配自动单元测试。
持续集成的提出,主要是为了解决软件进行系统集成时面临的各项问题,极限编程称这些问题为集成地狱(integration hell)。
3-企业级CICD 持续集成交付发布 - 图2
持续集成主要是强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。简单来讲就是:频繁地(一天多次)将代码集成到主干。

2、持续集成目的在产生以下效益

及早发现集成错误且由于修订的内容较小所以易于追踪,这可以节省项目的时间与成本。
避免发布日期的前一分钟发生混乱,当每个人都会尝试为他们所造成的那一点点不兼容的版本做检查。
当单元测试失或发生错误,若开发人员需要在不除错的情况下还原代码库到一个没有问题的状态,只需要放弃一小部分的更改 (因为集成的次数频繁)。
让 “最新” 的程序可保持可用的状态供测试、展示或发布用。
频繁的提交代码会促使开发人员创建模块化,低复杂性的代码。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

2、持续交付

持续交付(英语:Continuous delivery,缩写为 CD),是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。
它的目标在于让软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。
3-企业级CICD 持续集成交付发布 - 图3
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

3、持续部署

持续部署(英语:Continuous Deployment,缩写为 CD),是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
有时候,持续部署也与持续交付混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到测试环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。
3-企业级CICD 持续集成交付发布 - 图4
持续部署即在持续交付的基础上,把部署到生产环境的过程自动化。

二:Jenkins CI/CD

1、 Jenkins CI/CD 流程图

3-企业级CICD 持续集成交付发布 - 图5
说明:上线之前先把代码git到版本仓库,然后通过Jenkins 如Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程.(存在环境依赖问题)
如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性问题 (环境之间会有一定的差异)
3-企业级CICD 持续集成交付发布 - 图6
说明:这里有一个docker harbor 的镜像仓库,通常会把你的环境打包为一个镜像,通过镜像的方式来部署(解决环境依赖问题)。

2、Jenkins 介绍

3-企业级CICD 持续集成交付发布 - 图7
Jenkins 是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目独立。
Jenkins 提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
3-企业级CICD 持续集成交付发布 - 图8
3-企业级CICD 持续集成交付发布 - 图9
3-企业级CICD 持续集成交付发布 - 图10

1、Jenkins 功能

持续的软件版本发布/测试项目。
监控外部调用执行的工作。

2、Jenkins 概念

Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的开源项目,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

3、Jenkins 目的

持续、自动地构建/测试软件项目。
监控软件开放流程,快速问题定位及处理,提提高开发效率。

4、Jenkins 特性

开源的java语言开发持续集成工具,支持CI,CD。
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

5、产品发布流程

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成(Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)

3、Jenkins 实验环境

操作系统:CentOS7.6

主机名 ip 服务
cicd-jenkins 10.0.1.87 jenkins
cicd-gitlab 10.0.1.86 gitlab
cicd-web 10.0.1.88 web

4、jenkins 安装与使用

1、下载 java(直接从内部服务器下载)
[root@jenkins ~]# wget https://download.oracle.com/otn/java/jdk/8u251-b08/3d5a2bb8f8d4428bbe94aed7ec7ae784/jdk-8u251-linux-x64.tar.gz
2、安装java
[root@jenkins ~]# tar xf jdk-8u251-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins ~]# ln -s jdk1.8.0_251/ java
3、下载 maven(从内部服务器下载)
[root@jenkins ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
4、解压安装
[root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins ~]# ln -s apache-maven-3.6.3/ maven
5、添加环境变量
[root@jenkins ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export MAVEN_HOME=/usr/local/maven
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$PATH
[root@jenkins ~]# source /etc/profile
6、验证 java 和 maven 安装
[root@jenkins ~]# java -version
java version “13.0.2” 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

[root@jenkins ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 13.0.2, vendor: Oracle Corporation, runtime: /usr/local/jdk-13.0.2
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “3.10.0-957.el7.x86_64”, arch: “amd64”, family: “unix”
6、yum 安装 jenkins
[root@jenkins ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.235.1-1.1.noarch.rpm
[root@jenkins ~]# yum install -y jenkins-2.235.1-1.1.noarch.rpm
7、jenkins 配置
[root@jenkins ~]# rpm -ql jenkins
/etc/init.d/jenkins # 启动文件
/etc/logrotate.d/jenkins # 日志分割配置文件
/etc/sysconfig/jenkins # jenkins主配置文件
/usr/lib/jenkins # 存放war包目录
/usr/lib/jenkins/jenkins.war # war 包
/usr/sbin/rcjenkins # 命令
/var/cache/jenkins # war包解压目录 jenkins网页代码目录
/var/lib/jenkins # jenkins 工作目录
/var/log/jenkins # 日志
8、修改配置文件
[root@jenkins ~]# grep “^[a-Z]” /etc/sysconfig/jenkins
JENKINS_HOME=”/var/lib/jenkins” # jenkins工作目录
JENKINS_JAVA_CMD=””
JENKINS_USER=”jenkins” # jenkinx启动用户
JENKINS_JAVA_OPTIONS=”-Djava.awt.headless=true”
JENKINS_PORT=”8080” # 端口
JENKINS_LISTEN_ADDRESS=””
JENKINS_HTTPS_PORT=””
JENKINS_HTTPS_KEYSTORE=””
JENKINS_HTTPS_KEYSTORE_PASSWORD=””
JENKINS_HTTPS_LISTEN_ADDRESS=””
JENKINS_DEBUG_LEVEL=”5”
JENKINS_ENABLE_ACCESS_LOG=”no”
JENKINS_HANDLER_MAX=”100” # 最大连接
JENKINS_HANDLER_IDLE=”20”
JENKINS_ARGS=””
9、启动 jenkins
首先需要修改一下启动脚本,文件在/etc/init.d/jenkins
因为jenkins的启动脚本默认java路径为:/usr/bin/java
但是我们新安装的java路径并不是在这个,所以我们需要新添加路径。如图下所示:
新路径地址为:/usr/local/java/bin/java
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start jenkins
10、验证安装
[root@jenkins ~]# ps -ef|grep jenkins
jenkins 16037 1 1 16:20 ? 00:00:13 /usr/local/jdk1.8/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war —logfile=/var/log/jenkins/jenkins.log —webroot=/var/cache/jenkins/war —daemon —httpPort=8080 —debug=5 —handlerCountMax=100 —handlerCountMaxIdle=20
root 16107 1215 0 16:39 pts/1 00:00:00 grep —color=auto jenkins
[root@jenkins ~]# netstat -lnutp|grep jenkins
[root@jenkins ~]# netstat -lnutp|grep 8080
tcp6 0 0 :::8080 ::: LISTEN 16037/java
注意:以下是第二种安装方式
1.上传jdk
[root@jenkins-server ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv jdk1.8.0_191/ java
2.安装tomcat
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
[root@jenkins-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv apache-tomcat-8.5.42/ tomcat
3.安装maven
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@jenkins-server ~]# tar xzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/java
[root@jenkins-server ~]# cd /usr/local/java
[root@jenkins-server java]# mv apache-maven-3.5.4/ maven
设置变量:
[root@jenkins-server ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME
3-企业级CICD 持续集成交付发布 - 图11
[root@jenkins-server ~]# source /etc/profile
验证:
[root@jenkins-server ~]# java -version
java version “1.8.0_191”
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@jenkins-server ~]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/java/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “3.10.0-693.el7.x86_64”, arch: “amd64”, family: “unix”
下载jenkins的安装包:
安装jenkins:2.187 ——通过官网直接下载war包。
官网:http://updates.jenkins-ci.org/download/war/
[root@jenkins-server ~]# wget http://updates.jenkins-ci.org/download/war/2.187/jenkins.war
部署jenkins
[root@jenkins-server ~]# cd /usr/local/tomcat/webapps/
[root@jenkins-server webapps]# rm -rf

[root@jenkins-server webapps]# cp /root/jenkins.war .
[root@jenkins-server tomcat]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost tomcat]# vim /usr/local/tomcat/conf/server.xml #将8009端口放开
3-企业级CICD 持续集成交付发布 - 图12
[root@localhost tomcat]# ./bin/shutdown.sh #关闭tomcat再重新启动
[root@localhost tomcat]# ./bin/startup.sh
[root@localhost tomcat]# ss -anltp |grep java
3-企业级CICD 持续集成交付发布 - 图13

5.登录jenkins web管理界面

浏览器输入:http://192.168.112.135:8080/jenkins
管理员密码获取
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
5d3f57bea6e546139fc48ea28f9d5ae5
3-企业级CICD 持续集成交付发布 - 图14
3-企业级CICD 持续集成交付发布 - 图15

  1. 修改 /var/lib/jenkins/updates/default.json

    [root@localhost jenkins]# vim /root/.jenkins/updates/default.json
    jenkins 在下载插件之前会先检查网络连接,其会读取这个文件中的网址。默认是:www.google.com
    访问谷歌,这就很坑了,服务器网络又不能 FQ,肯定监测失败呀,不得不说jenkins的开发者脑子锈了,所以将图下的google改为www.baidu.com即可,更改完重启服务。
    {“connectionCheckUrl”:”http://www.baidu.com/","core":{"buildDate":"Dec 02, 2020”,”name”:”core”,”sha1”:”fMwDSSmyX9SkyDzqpqhd2EjOUy4=”,”sha256”:”Du3rKxGjJyastX2ybiYrGSPPQI6EcIuvRx47U0Yu1vE=”,”url”:”https://updates
    …….

2、 修改/var/lib/jenkins/hudson.model.UpdateCenter.xml
该文件为jenkins下载插件的源地址,改地址默认jenkins默认为:https://updates.jenkins.io/update-center.json,就是因为https的问题,此处我们将其改为http即可,之后重启jenkins服务即可。
其他国内备用地址(也可以选择使用):
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
3-企业级CICD 持续集成交付发布 - 图16
3-企业级CICD 持续集成交付发布 - 图17
账号:admin密码:123
域名可供选择(根据实际情况)
3-企业级CICD 持续集成交付发布 - 图18
3-企业级CICD 持续集成交付发布 - 图19
点击“Start using jenkins”
3-企业级CICD 持续集成交付发布 - 图20

6.Jenkins 用户权限管理

1、 用户管理背景

针对开发、运维、测试针对不同角色进行不同权限划分,
基于插件:
Role-based Authorization Strategy
Authorize Project

2、 安装用户管理插件

安装该插件:
系统管理->管理插件-可选插件->搜索该插件选中直接安装即可。
3-企业级CICD 持续集成交付发布 - 图21
3-企业级CICD 持续集成交付发布 - 图22
3-企业级CICD 持续集成交付发布 - 图23
3-企业级CICD 持续集成交付发布 - 图24
3-企业级CICD 持续集成交付发布 - 图25

3、 开启该插件功能

系统管理->全局安全设置-授权策略->选中该插件功能即可->保存
3-企业级CICD 持续集成交付发布 - 图26
3-企业级CICD 持续集成交付发布 - 图27
3-企业级CICD 持续集成交付发布 - 图28
3-企业级CICD 持续集成交付发布 - 图29

4、 验证用户管理

1、策略改回原来的(全局安全配置)

3-企业级CICD 持续集成交付发布 - 图30
3-企业级CICD 持续集成交付发布 - 图31

1 开启允许用户注册(全局安全配置)

3-企业级CICD 持续集成交付发布 - 图32
3-企业级CICD 持续集成交付发布 - 图33

2 注册一个新用户

3-企业级CICD 持续集成交付发布 - 图34
3-企业级CICD 持续集成交付发布 - 图35
3-企业级CICD 持续集成交付发布 - 图36

4、登录之后,其默认就是管理员用户,可以进行任何操作

3-企业级CICD 持续集成交付发布 - 图37

5、开启 Role-Based Strategy

3-企业级CICD 持续集成交付发布 - 图38

6、重新用 test1 用户登录显示已经没有任何权限

3-企业级CICD 持续集成交付发布 - 图39

5、 用户权限划分

安装 Role-Based Strategy 插件后,系统管理 中多了如图下所示的一个功能,用户权限的划分就是靠他来做的。
3-企业级CICD 持续集成交付发布 - 图40
3-企业级CICD 持续集成交付发布 - 图41

1、Manage Roles(管理角色)

Manage Roles:管理角色,相当于针对角色赋予不同权限,然后在将该角色分配给用户。
角色就相当于一个组。其里面又有Global roles(全局)、item roles(项目)、node roles(),来进行不同划分。
Global roles (全局角色):管理员等高级用户可以创建基于全局的角色
Item roles(项目角色):针对某个或者某些项目的角色
node roles(节点角色):节点相关的权限

1、Global roles

默认是有一个admin用户的,是所有权限都有的,所有权限都是勾选了的。
接下来我们来添加一个角色:baseRole
baseRole :该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。
注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
3-企业级CICD 持续集成交付发布 - 图42
3-企业级CICD 持续集成交付发布 - 图43

2、Project roles

roles to add:表示项目角色
Pattern:是用来做正则匹配的(匹配的内容是Job(项目名)),比如说根据正则匹配到的项目项目角色就都有权限;
接下来新建项目角色,改项目角色一般给其构建、取消、读取、读取空间权限,一般配置这4个即可
demo :该角色为项目角色。使用正则表达式绑定 “demo.”,意思是只能操作 demo 开头的项目。
web :该角色也为项目角色。绑定 “web.”,意思是只能操作 web 开头的项目。
3-企业级CICD 持续集成交付发布 - 图44

3、node roles

node roles(节点角色):节点相关的权限
roles to add:表示项目角色
Pattern:是用来做正则匹配的(匹配的内容是节点(slave节点)),比如说根据正则匹配到的项目项目角色就都有权限;
3-企业级CICD 持续集成交付发布 - 图45
温馨提示: 针对以上的勾选的全局权限和项目权限都可以多尝试进行操作熟悉,便可观察到它对应的功能模块

2、创建可登录用户

Manage Jenkins - Manage Users
分别创建两个用户: demo01 和 web01
3-企业级CICD 持续集成交付发布 - 图46

3、给用户分配角色

Manage Jenkins - Manage and Assign Roles - Assign Roles - 保存
绑定规则:
demo01 用户分别绑定 baseRole 全局角色和 demo 项目角色(有删除权限)
web01 用户分别绑定 baseRole 全局角色和 web 项目角色(没有删除权限)
3-企业级CICD 持续集成交付发布 - 图47

4、创建对应的项目分配登录相关的用户

demo01 用户登录,只能看到 demo 项目
3-企业级CICD 持续集成交付发布 - 图48

5、验证 demo01 用户授权的项目

3-企业级CICD 持续集成交付发布 - 图49

6、验证 web01 用户授权的项目

web01 用户登录,只能看到 web 项目
3-企业级CICD 持续集成交付发布 - 图50

7、项目管理

为了方便项目管理,可以对不同项目进行分类(借助视图):
3-企业级CICD 持续集成交付发布 - 图51
分类管理项目:
3-企业级CICD 持续集成交付发布 - 图52
忘记登录用户密码的解决方法:
停止tomcat
删除 /root/.jenkins
删除项目 webapps目录下的所有内容
重新上线
3-企业级CICD 持续集成交付发布 - 图53
3-企业级CICD 持续集成交付发布 - 图54
用户权限实验总结:
3-企业级CICD 持续集成交付发布 - 图55
3-企业级CICD 持续集成交付发布 - 图56
注意:

  1. 创建的项目不匹配(正则不匹配)
    正则:admin.
    项目:admin-1 admin01 (匹配不到)
    项目:admin1 admin2(正确匹配)

    . 一个字符
    .* 多个字符

实验作业:
在jenkins创建中创建两个用户:user1 user2
在jenkins创建2个空白项目: menu-1 app-1
user1用户上面只能看到menu-1项目,user2用户上只能看到app-1项目
3-企业级CICD 持续集成交付发布 - 图57
3-企业级CICD 持续集成交付发布 - 图58
3-企业级CICD 持续集成交付发布 - 图59
3-企业级CICD 持续集成交付发布 - 图60

7、Jenkins 参数化构建

1、 参数化构建背景

如果只是简单的构建,jenkins自己默认的插件可以做,但是如果我们想要在构建过程中有更多功能,比如说:选择性构建、传参、项目指定变量等等其他功能,基础的参数化构建可以实现一些简单功能,但是要想使用更多功能这时候我们就需要借助参数化构建来实现交互的功能。此处我们来借助以下插件来进行实现:
Extended Choice Parameter(更丰富的参数化构建插件)
Git Parameter

2、安装插件

首先还是安装该插件,去管理插件里面进行安装
Extended Choice Parameter
3-企业级CICD 持续集成交付发布 - 图61
3-企业级CICD 持续集成交付发布 - 图62

1、项目配置

3-企业级CICD 持续集成交付发布 - 图63

2、选择安装过的插件

3-企业级CICD 持续集成交付发布 - 图64
3-企业级CICD 持续集成交付发布 - 图65

3、进行配置

3-企业级CICD 持续集成交付发布 - 图66
这里这个branch 就相当于给其当做一个变量,然后来为其进行传参
3-企业级CICD 持续集成交付发布 - 图67

4、构建选择执行shell进行测试

3-企业级CICD 持续集成交付发布 - 图68
3-企业级CICD 持续集成交付发布 - 图69

5、参数化配置已经生效

3-企业级CICD 持续集成交付发布 - 图70
3-企业级CICD 持续集成交付发布 - 图71

6、构建 test01

可以发现控制台的输出也是成功了的

3-企业级CICD 持续集成交付发布 - 图72
3-企业级CICD 持续集成交付发布 - 图73

7、数据来源选择文件

在jenkins所在服务器进行如下操作:
[root@qfedu.com ~]# vim /opt/jenkins.property # 建立一个文件
abc=t1,t2,t3,t4
web 端配置:
3-企业级CICD 持续集成交付发布 - 图74
进行测试:
构建前:(可以发现也是生效的)
3-企业级CICD 持续集成交付发布 - 图75
构建后查看结果:(也是成功的)
3-企业级CICD 持续集成交付发布 - 图76
3-企业级CICD 持续集成交付发布 - 图77