实现持续集成/持续发布的产品:开发(git)–> git主库 --> jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器
CI:(continues intergration) 持续集成,代码合并,构建,测试合并,不断执行的过程,并对结果反馈
CD:(continues Deloyments) 持续发布 ,将代码部署到测试环境,预生产环境
CD:(continues Delivery) 持续部署,将最终的产品发布到生产环境,供用户使用
平滑发布
什么叫平滑:在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问;
灰度发布
什么叫灰度:发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 ;
AB发布
AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好版本正式采用;
易于安装:不需要安装,不需要数据库,只需要通过java-jar jenkins.war或部署到一个servlet容器中
易于配置:所有的配置都可能通过jenkins提供的web界面完成,当然如果你喜欢,也可以通过手动修改xml文件进行配置
测试报告:生成jUnit或TestNG的测试报告,集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知
文件识别:jenkins能跟踪每次构建生成哪些jar包以及使用那个版本的jar包
分布式构建: 支持jenkins能够让多台计算机一起构建/测试
插件支持:jenkins可以通过第三方插件进行扩展,也可以根据团队需要开发插件
任务(job)和构建(build):任务:(job)是jenkins的一个执行计划,是一系列操作的集合
环境准备
总共使用三台服务器
使用Github官方服务器
192.168.100.10部署Jenkins (4G内存)
192.168.100.20部署Tomcat服务器
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #均安装epel扩展源
一、安装依赖包
[root@jenkins ~]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
二、Git官网下载Git安装包
[root@jenkins ~]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
三、安装Git
[root@jenkins ~]# tar -xvzf git-2.9.5.tar.gz
[root@jenkins ~]# cd git-2.9.5
[root@jenkins git-2.9.5]# make prefix=/usr/local/git all #编译Git源代码
[root@jenkins git-2.9.5]# make prefix=/usr/local/git install #安装
四、修改环境变量
[root@jenkins git-2.9.5]# vim /etc/bashrc
PATH=$PATH:$HOME/bin:/usr/local/git/bin
[root@jenkins git-2.9.5]# source /etc/bashrc
五、测试是否安装成功
[root@jenkins git-2.9.5]# git --version
git version 1.8.3.1
版本使用 jdk-8u291-linux-x64.tar.gz
注:不能使用jdk9和jdk10 与本版本不兼容
一、解压安装
[root@jenkins ~]# tar -xvzf jdk-8u291-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins ~]# mv jdk1.8.0_291/ jdk
二、修改环境变量
[root@jenkins ~]# vim /etc/bashrc
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
[root@jenkins ~]# source /etc/bashrc
三、测试JDK
[root@jenkins ~]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
一、下载和解压Maven
[root@jenkins ~]# wget https://mirrors.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@jenkins ~]# tar -xvzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/ #解压到/usr/local
[root@jenkins ~]# mv /usr/local/apache-maven-3.5.4/ /usr/local/maven #更名为maven
二、修改环境变量
[root@jenkins ~]# vim /etc/bashrc
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin
export JAVA_HOME=/usr/local/jdk #声明环境变量
export PATH
[root@jenkins ~]# source /etc/bashrc
三、测试Maven
[root@jenkins ~]# mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_291, vendor: Oracle Corporation, runtime: /usr/local/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
一、解压部署
[root@jenkins ~]# wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
[root@jenkins ~]# tar -xvzf apache-tomcat-9.0.46.tar.gz -C /usr/local/
[root@jenkins ~]# mv /usr/local/apache-tomcat-9.0.46/ /usr/local/tomcat
二、定义Tomcat所需环境变量
[root@jenkins ~]# vim /etc/profile
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
[root@jenkins ~]# source /etc/profile
三、启动TOMCAT
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh
四、测试TOMCAT
http://192.168.100.10:8080/
上传代码前记得关闭TOMCAT
[root@jenkins ~]# /usr/local/tomcat/bin/shutdown.sh
一、官方下载Jenkins
下载2.296
[root@jenkins ~]# wget http://updates.jenkins-ci.org/download/war/2.296/jenkins.war
二、部署Jenkins.war到TOMCAT下
[root@jenkins ~]# cp jenkins.war /usr/local/tomcat/webapps/
附:jenkins忘记密码重置步骤对照表
Jenkins重置 |
---|
关闭Tomcat /usr/local/tomcat/bin/shutdown.sh |
rm -rf /usr/local/tomcat/webapps/jenkins* |
rm -rf ~ /.jenkins* |
cp jenkins.war /usr/local/tomcat/webapps |
启动tomcat即可访问jenkins |
三、启动TOMCAT
注意:启动TOMCAT会自动解压webapps下的war包
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh
四、登陆Jenkins
http://192.168.100.10:8080/jenkins
[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
55b1bb2b1d164668b1def74e32240d89
安装过程可能出现报错,没关系,点击重新下载即可,如还是不行,请手动下载安装
http://192.168.100.10:8080/jenkins/
简介:我们配置的是 git+maven方式的自动化部署 所有git和maven的相关插件是必须的 还有一个ssh基于机器间的文件传送
Git插件访问代码仓库 maven插件调用压缩打包工具 ssh插件用于文件传输
安装过程请耐心等待
一、安装插件 Deploy to container
选择安装后重启
二、安装插件 Maven integration
三、安装Git相关三个插件
四、安装插件 Publish Over SSH
与前方程序进行调用并关联
注意:没有强调的都设置为默认即可
路径:系统管理->(全局工具配置)Global Tool Configuration,配置jdk,git,maven的根目录
配置JDK根目录,注意不能是JDK9.0,切记
取消自动安装勾选 选择自己的安装路径
三、配置git目录
四、配置Maven并保存
五、点击全局保存
六、关于重启Jenkins
http://192.168.100.10:8080/jenkins/restart
http://192.168.100.10:8080/jenkins/stop
http://192.168.100.10:8080/jenkins/reload
目的:(192.168.100.10) jinkens 服务器上的maven将开发产生的*.war包。通过SSH自动推送到远程tomcat服务器上(192.168.100.20)。需要手工配置sshkey。配合自动化推送
192.168.100.10是Jenkins
192.168.100.20是tomcat网站服务器,代表业务服务器
一、Jenkins服务器准备秘钥认证
这里的192.168.100.20是一台tomcat服务器,什么都不用安装,接受代码即可
[root@jenkins ~]# ssh-keygen
[root@jenkins ~]# ssh-copy-id 192.168.100.20
[root@jenkins ~]# ssh 192.168.100.20
Last login: Tue Jun 8 22:37:05 2021 from 192.168.100.10
[root@tomcat ~]#
二、在Jenkins服务器准备秘钥认证
[root@jenkins ~]# cat .ssh/id_rsa
... #秘钥略
三、设置Maven
公有Git仓库
② 选择版本控制器和仓库地址
③ 设置触发器(保持默认)
④ 设置构建(编译打包)
⑤ 构建后操作
在构建设置中选择:(send build artifacts over ssh)通过ssh发送构建文件
关于构建后文件的配置说明 | |
---|---|
SSH Server Name | 因为之前的配置会默认出现tomcat业务服务器的名字 |
Source file | 构建之后,在jenkins服务器上是可以自动看到war包的。(该路径不需要创建)ls /root/.jenkins/jobs/testjob1/builds/target/*.war |
Remove prefix | 自动删除路径前缀(不需要创建路径前缀) |
Remove directory | tomcat业务服务器上的路径,需要提前在192.168.100.11(tomcat)上创建该目录用来存放网站源代码(需要后台创建) |
Exec command | tomcat(192.168.100.20)在接收到源码之后的自定义操作比如:将源码拷贝到网站的主目录(/jenkins),并执行一些其他操作如重启服务器等(或创建文件touch 需要后天创建) |
⑥ 为TOMCAT服务器创建相应文件
[root@tomcat ~]# mkdir /jenkins/war -p #创建用于存放源代码的目录
tomacat(192.168.100.20)在接受到源码之后的自定义动作
比如:将源码拷贝到网站主目录(/jenkins),并执行一些其他操作如重启服务器等(或创建文件touch)(需要后台创建)
[root@tomcat ~]# mkdir /jenkins/sh #创建脚本目录
[root@tomcat ~]# vim /jenkins/sh/deploy.sh #创建待执行脚本,如果构建任务执行完成,此脚本也必须执行完成,否则认为失败
touch /root/aaa.txt
touch /root/bbb.txt
[root@tomcat ~]# chmod +x /jenkins/sh/deploy.sh #为脚本授权
关于创建脚本的解释:
创建脚本的目的是为了验证自动化构建之后能否执行一些我们自己的想法
因为目前为测试,不需要安装网站环境,所以这里以创建文件进行代表
一、立即构建
点击下方构建的任务
进入控制台输出
等待大约5分钟提示完成
如果出现error,检查前边配置
[root@tomcat ~]# ls /jenkins/war/
easy-springmvc-maven.war #此包为Github官网下载的软件包
[root@tomcat ~]# ls #查看脚本是否运行成功
aaa.txt bbb.txt
实验完成!