1、CICD
CICD:持续集成
代码合并,构建,部署,测试都在一起,不断的执行的过程,并对结构反馈。
CD:持续交付,持续部署
将最终的产品发布到生产环境,给用户使用
jenkins:Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。 意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到web容器中。
2、Jenkins实战案例搭建环境
-
centos7
-
github,gitee,gitlab
-
192.168.229.11 部署jenkins(4\6\8G)
-
192.168.229.21充当tomcat网站服务器
-
关闭防火墙\关闭selinux\配置了yum源(base,epel 阿里源)
1、安装相关工具
JDK
Jenkins是Java编写的,所以需要先安装JDK,采用yum安装,也可自己编译安装。如果对版本有需求,可以直接在Oracle官网下载JDK;本次实战使用的jdk是后续的编译安装
mave安装
-
下载 maven3.8.8 包
-
https://dlcdn.apache.org/mave选择自己需要的maven版本
-
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/source/apache-maven-3.8.8-src.tar.gz
-
tar -zxvf apache-maven-3.8.8-src.tar.gz -C /usr/local/
-
mv /usr/local/apache-maven-3.8.8/ /usr/local/maven
-
-
配置环境变量
-
vim /etc/profile.d/jenkins_tools.sh
-
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin
export MAVEN_HOME=/usr/local/maven
export PATH=${MAVEN_HOME}/bin:$PATH
-
-
-
生效
-
source /etc/profile.d/jenkins_tools.sh
-
-
测试
-
mvn -version 出现版本号即成功(此时肯定是未找到命令,因为我们还没有配置jdk)
-
[root@localhost ~]# mvn -version -bash: mvn: 未找到命令
-
如果自己之前配过jdk则可以出现版本号
-
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39) Maven home: /usr/local/maven Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
-
部署git
1.安装依赖包
# yum install curl-devel expat-devel gettext-devel
openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
fontconfig -y
-
2.git官网下载最新版本GIT
-
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
-
3.安装git:
-
解压并cd到解压目录
# tar xf git-2.9.5.tar.gz # cd git-2.9.5/
-
编译源码包,安装在/usr/local/git目录下
-
# make prefix=/usr/local/git all
-
源码安装
-
# make prefix=/usr/local/git install
-
修改环境变量
-
# vim /etc/bashrc PATH=$PATH:$HOME/bin:/usr/local/git/bin
-
更新git的路径,从用户主目录下的
bin
目录 修改到 /usr/local下面 -
关于bashrc和profile
-
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置.
-
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
-
-
-
# source /etc/bashrc
-
测试是否安装成功:
-
# git --version git version 1.8.3.1
如果你查询的是低版本,有可能是系统YUM安装的.yum卸载之后即可.
-
# yum remove git.x86_64 # source /etc/bashrc # git --version git version 2.9.5
-
-
2、安装Jenkins
1、上传 jdk11 tomcat9
2、解压jdk
[root@jenkins ~]# tar xf jdk-11.0.16_linux-x64_bin.tar.gz
3、 解压tomcat
[root@jenkins ~]# tar xf apache-tomcat-9.0.79.tar.gz
4、 拷贝并修改名称
[root@jenkins ~]# mv jdk-11.0.16 /usr/local/java &&
mv apache-tomcat-9.0.79 /usr/local/tomcat
5、 处理环境变量
[root@jenkins ~]# vim /etc/profile.d/java.sh
TOMCAT_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/java
PATH=$TOMCAT_HOME/bin:$JAVA_HOME/bin:$PATH
export TOMCAT_HOME JAVA_HOME PATH
[root@jenkins ~]# source /etc/profile.d/java.sh
查看版本号
# java -version
java version "11.0.16" 2022-07-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16+11-LTS-199)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16+11-LTS-199, mixed mode)
[root@web ~]# mvn --version
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/local/maven
Java version: 11.0.16, vendor: Oracle Corporation, runtime: /usr/local/java
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
6、上传jenkins
官网下载jenkins: jenkins.warDownload previous versions of jenkins.warhttp://updates.jenkins-ci.org/download/war/
7、 下载2.422,上传至服务器(我这里用的是2.422 )
[root@jenkins ~]# rm -rf /usr/local/tomcat/webapps/*
[root@jenkins ~]# cp jenkins.war /usr/local/tomcat/webapps/
8、启动tomcat,并页面访问:(ip:8080/jenkins)
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh
3、前台配置jenkins
0.加载中
1、解锁Jenkins:为了安全考虑,首先需要解锁Jenkins
2、添入以下文件密码到上图页面中
# cat /root/.jenkins/secrets/initialAdminPassword
07af1055d4644cb7884c855043b82e3d
注意看自己的。不要复制我的
3、点击继续
4、选择suggested的插件进行下载
5、等待安装完成。(科学上网更方便)
6、如果不会科学上网,可能会因为网速问题,插件可能下载失败,没关系,把他们记录下来,比如下图的两个插件,点击继续,进去之后手动重新安装未安装好的插件
也可以重试,继续下载安装。
如果大量组件,重试多次依然未安装成功.请尝试如下方法
jenkins 插件安装缓慢问题
vim ~/.jenkins/hudson.model.UpdateCenter.xml
<url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
vim ~/.jenkins/updates/default.json
替换命令
% s/www.google.com/www.baidu.com/g
% s/updates.jenkins.io\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g
旧版: http://updates.jenkins-ci.org/download 替换成 https://mirrors.tuna.tsinghua.edu.cn/jenkins
新版:https://updates.jenkins.io/download 替换成 https://mirrors.tuna.tsinghua.edu.cn/jenkins
修改完以后,重启Jenkins服务再输入密码,继续安装,速度贼快。
http://192.168.229.11:8080/jenkins/restart
重启tomcat
7.创建用户
8.前台安装完成
如果这个页面过一会消失了。并且常时间空白。可能需要你登录了。换个浏览器,打开相同的地址就会出现认证页面。
欢迎界面
4、系统配置
1,Manage Jenkins
这些都是警告,不影响我们使用
全局变量设置
下边这个键值对可以用命令查找
# echo $JAVA_HOME
# echo $MAVEN_HOME
5、全局工具配置
maven配置
/usr/local/maven/conf/settings.xml
添加JDK工具
点击新增---> 取消自动安装 ---->然后查询Jenkins服务器上JDK的路径,填写JAVA_HOME ---> 保 存即可
添加git工具
去安装git的路径里可以找到的/usr/local/git/bin/git
添加maven工具
SSH 设置
目的:
(192.168.229.11)jinkens服务器上的maven将开发产生的*.war包。 通过SSH自动推送到远程tomcat 服务器上(192.168.229.21)。 需要手工配置ssh key。配合自动化推送
192.168.229.11是jenkins
192.168.229.21是tomcat网站服务器,代表业务服务器
1.jenkins服务器准备秘钥认证
# ssh-keygen
一路回车
ssh-copy-id -i 192.168.229.21
注意这里的192.168.229.21是一台tomcat网站服务器。什么都不用安装,接到代码即可。
# ssh 192.168.229.21 登录不需要密码即可
# exit 切记测试远程登录后退出!!!
2.在jenkins上配置ssh信息
准备SSH私钥
[root@localhost ~]# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA9ttRxXiVoxkgTvp+qZUmBsz4iAzBPeLwVDZlP8h2zSh95tS7
2Tc3PLeb16He8MH1Xl1NCl8q76PdqGKm+YWnhDZ5RMAd7N+kE5lbhg+LG/LhsMGm
vqhkcPwcKiGihb/yMBtNdB6Rdch3+DAsgIQ7Mq/CnlSBxEss+6QEzRybVl6k1I4G
h2V9OebWJqfueWg1yZrw35ZFlfQ9e5g8yHLgEbM8v/AVYEj+8hHdMYsKHTdm4Re/
WFFz+ngiqx2NjDvDygVyY0bgs7oWAwfO4X77aC6onUBnLMxfUpRwq4U3XFhBClOL
yqV5q6wiT/StCGvS087GTluGlZ8bylXLKNYUIwIDAQABAoIBAGfGlZ69bbKuGm35
Uow6Hk1Xl9eh/Q7mO4A7id8BiCgBMMR8hCfx1W/aBFLnQtDVyTANaxjEH0m1CrcC
Gg3lySGEwQBM/4eYEOMIYnh+Sk3KkmR7VHzsT6VL5w8zKp6trcPZhnsdaqsoRn74
yYyRik1ppBhpkFAUBmoXbslHkGoC9kfNs783SJhw6UeVgJ5eLIkDzTYBLgV7EtXI
5DpYkLg4Skzw1Q1VK70yXN4Wh25PdhWEb0hHTjbHaMq4OdjRzYsIGCTFX/o57HV/
KG1uW4ubbrMj87yi6wcTlPpArViJHk5YzKGVqbgIJfRjbdYEvJ2AeI+UhtAehsqk
235qyjECgYEA/vdRH7FfVg7nuXduBIpA6XTDQ9DkSwZaGqCTyPAvuwPoM+0U7gKh
O0XJQAk8010sPbc77NRolOTzWZGIsQTR/iUi5PhuD6PCL6/ozmPHJab5WqkCj/Fw
89mxOAyx9m7wZuzNawtagNsY5baLRtEv+3yV68GA46XSblnxs9GdQskCgYEA99uV
iBjVDBpzyuI2cjDzena3rDkSX0wRZ0z5rIEbSDT8bzfBUCyVPFfKtWeufcTzYRdm
dW6d1cg5JP7GOUxnYXOV8t38oTtJtUmjPo4jiYGMxnRxz65wouEu2z0f4MXyuGZv
qRCFAY1LRXowAFqvqIavIRMvhfMMa6RMbs1ryYsCgYBPoAcqwacHZkJB7qViL5cU
EY4FuNADCinLlQhyQWh2nELBLLJTnmih7SproDbpv3hYkcfaL3+1uEazWzr4JYw7
NXfPUDJ3GepEIEixZAHGpX3MLWoKcBmZXgv1eCl/z6euTRfd7T7HbSU6YCbg5+V3
QbJEXTsWXSv5oIdWZAkb2QKBgEx7fs3rU7qTYw3E9iYQguFURuMnDUtIzsoAj76y
bDfA2fB71PQnfbmMIaoOn2KB5tQcA2rTQnMYgMGwuHwv3mrM3wV9iJo8EEeXvH7u
H3sr9cO7ZO9AFdO9BtdyKicTDg3m1ifmSBStg/+hb7R8R14KiXn8UJrV4AxLO6ap
Tsx3AoGBAMv0D3KtubEZaaG+Bmuydot1lnchLuVmx0H81ZKA0daxlGFZ7kvZ5GR+
qa9xYpEIJ4yr+d9QjUhMPQb+hPytOjMJ09lfAnqsuH5mNAUvAwMzgfT2D1gneYnQ
0qFz59Ru9f7G1AM5VTjYORr0SauppWgeowWxB5MPGhWiOtGpVvyO
-----END RSA PRIVATE KEY-----
[root@localhost ~]#
你无法完成下面操作,因为ssh的插件没有安装!!!!!(一会儿会安装插件)
进入jenkins系统设置,复制cat出来的所有内容,粘贴到下一步页面上的key中。
6、插件管理
安装插件
(1)Maven Integration plugin 安装此插件才能构建maven项目
(2)Deploy to container Plugin 安装此插件,才能将打好的包部署到tomcat上
(3) 安装git相关3个插件
1. GitHub Authentication插件
2.GitHub Branch Source插件默认已安装
3.GitHub Organization Folder插件淘汰了。不用安装这个插件了
(4)安装插件:Publish Over SSH
回到上面。系统配置刚才给你加!!!的地方,配置ssh的秘钥
(5)优化maven:如果不会科学上网就需要这一步
配置国内maven镜像
vim /usr/local/maven/conf/settings.xml
<mirror>
<id>central</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
7、Jenkins+Maven+Github+Tomcat 自动化构建打包、部署
创建一个Maven工程
1.构建maven项目
2.源码管理
选择版本控制器和仓库地址
互联网仓库1 -----> https://github.com/bingyue/easy-springmvc-maven.git
互联网仓库2----> easy-springmvc-maven: jenkins 测试https://gitee.com/newrain001/easy-springmvc-maven.git easy-springmvc-maven: 测试jenkinshttps://gitee.com/chenfuguo1949/easy-springmvc-maven.git
如果有图中的提示,请注意你的git工具在jenkins中是否配置正确
注意:如果是私有仓库,这里需要建立credentials身份认证
3.设置触发器(保持默认)
4.设置构建(编译打包)
手动添加Goals and options
clean package -Dmaven.test.skip=true
5.构建后操作
在构建后设置中 选择:(send build artifacts over ssh)通过SSH发送构建工件
说明 :
name :ssh server 因为之前的配置会默认出现tomcat业务服务器的名字
source file:target/*.war-------》(构建之后,在jenkins服务器上是可以自动看到war包的。(该路径不需要创建) # ls /root/.jenkins/jobs/testjob1/builds/target/*.war)
Remove prefix:自动删除路径前缀(不需要创建路径前缀)
Remote directory:
tomcat业务服务器上的路径,需要提前在192.168.229.21(tomcat)上创建该目录。 用来存放网站源代码。(需要后台创建) # mkdir -p /jenkins/war
Exec command:
tomcat(192.168.229.21)在接收到源码之后的自定义动作。
比如:将源码拷贝到网站的主目录(/jenkins),
并执行一些其他操作如重启服务器等(或创建文件touch)(需要后台创建)
#mkdir /jenkins/sh
# cat /jenkins/sh/deploy.sh
cp -r /jenkins/war/*.war /jenkins
touch /tmp/aaaaaa.txt
#chmod +x /jenkins/sh/deploy.sh
6.保存即可
执行构建
查看构建结果
成功!!!!