一、CI/CD持续集成/持续发布

开发(git) -->git主库–>jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器

CI (Continuous Integration)持续集成 代码集成时不断执行过程和反馈

CD 持续交付 把代码部署到测试环境 之后持续部署在生产环境

​ 发布类型: 平滑发布、灰度发布、A/B发布

二、Jenkins介绍

Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。

主要用于持续、自动的构建/测试软件项目、监控一些定时执行的任务。

jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。

jenkins构建工具有Maven、Ant、Gradle。

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
通过配置将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到web容器中。

①、Jenkins特性

分布式构建、插件支持、任务(Job)和构建(build)、文件识别、测试报告

②、工作流程

在这里插入图片描述

  1. 开发者检入代码到源代码仓库。
  2. CI每一个项目创建了单独的工作区。当预设或请求新的构建时,它将仓库的源码存放到对应的工作区。
  3. CI系统会在对应的工作区内执行构建过程。
  4. 构建完成后,CI系统会在新的构建中执行定义的测试。完成后触发通知(Email,RSS等等)给相关的当事人。
  5. 如果构建成功,这个构件会被打包并转移到一个部署目标或存储为软件仓库中的一个新版本。
  6. CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。

三、Jenkins部署

环境

两台Centos7主机

                IP                           Role
          192.168.116.131                   jenkins
          192.168.116.132                   tomcat

1、安装依赖

# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

2、部署Git

# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
# tar -xf git-2.9.5.tar.gz
# cd git-2.9.5/
# make prefix=/usr/local/git all                                      # 编译   prefix 前缀
# make prefix=/usr/local/git install                                  # 安装
------------------------------------------------------------------------------------------
# vim /etc/profile                                                    # 修改环境变量
PATH=$PATH:$HOME/bin:/usr/local/git/bin
------------------------------------------------------------------------------------------
# source /etc/profile
# git --version

3、jdk环境部署

# yum -y remove java-1.8.0-openjdk*                                   # 卸载openjdk
# tar -xf jdk-8u151-linux-x64.tar.gz -C /usr/local
# mv /usr/local/jdk1.8.0_151/ /usr/local/jdk
------------------------------------------------------------------------------------------
# vim /etc/profile                                                    # 修改环境变量
PATH=$PATH:$HOME/bin:/usr/local/git/bin
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
------------------------------------------------------------------------------------------
# source /etc/profile
# java -version

4、部署Maven

# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
# tar -xf apache-maven-3.8.5-bin.tar.gz -C /usr/local/
# mv /usr/local/apache-maven-3.8.5/ /usr/local/maven
------------------------------------------------------------------------------------------
# vim /etc/profile                                                    # 修改环境变量
PATH=$PATH:$HOME/bin:/usr/local/git/bin
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
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
------------------------------------------------------------------------------------------
# source /etc/profile
# mvn -version

5、部署Tomcat

# wget https://tomcat.apache.org/download-10.cgi
# tar -xf apache-tomcat-9.0.1.tar.gz  -C /usr/local/
# mv /usr/local/apache-tomcat-9.0.1/ /usr/local/tomcat
------------------------------------------------------------------------------------------
# vim /etc/profile                                                    # 修改环境变量
PATH=$PATH:$HOME/bin:/usr/local/git/bin
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
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
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
------------------------------------------------------------------------------------------
# source /etc/profile
# /usr/local/tomcat/bin/start.up
# /usr/local/tomcat/bin/shutdown.sh

6、部署Jenkins

# wget https://mirror.xmission.com/jenkins/war/2.349/jenkins.war
# cp jenkins.war /usr/local/tomcat/webapps/
# /usr/local/tomcat/bin/startup.sh 

浏览器访问:http://192.168.116.131:8080/jenkins

7、登录Jenkins

# cat /root/.jenkins/secrets/initialAdminPassword

在这里插入图片描述

创建用户

在这里插入图片描述

8、管理插件

在这里插入图片描述

①、Deploy to container 支持自动化将代码部署到tomcat容器

在这里插入图片描述

②、Maven Integration jenkins 利用maven编译,打包,所需插件

在这里插入图片描述

③、GitHub Authentication GitHub Organization Folder

在这里插入图片描述

④、Publish Over SSH

在这里插入图片描述

9、全局工具配置

在这里插入图片描述

①、配置Jdk

在这里插入图片描述

②、配置Git

在这里插入图片描述

③、配置Mvn

在这里插入图片描述

10、SSH推送配置

在这里插入图片描述

maven将开发产生的*.war包通过SSH自动推送到远程应用服务器上

# ssh-keygen
# ssh-copy-id 192.168.116.132
# cat /root/.ssh/id_rsa

①、配置ssh

在这里插入图片描述

②、配置推送服务器

在这里插入图片描述

11、新建任务

在这里插入图片描述

①、General设置

在这里插入图片描述

②、选择版本控制器和仓库地址

测试地址: https://github.com/bingyue/easy-springmvc-maven

在这里插入图片描述

③、设置构建(编译打包)

claen package -Dmaven.test.skip=true

在这里插入图片描述

④、构建后操作

Name:推送服务器name

Source files:拉取的源代码目录

Remove prefix:去除前缀,只推送war包

Remote directory:远程服务器接收目录

Exec command:远程服务器接收后的动作

在这里插入图片描述

12、远程服务器端

# mkdir /jenkins/war -p            # 源码存放目录
# mkdir /jenkins/sh                # 执行动作脚本目录
--------------------------------------------------------
# vim /jenkins/sh/deploy.sh      # 测试脚本
cp -r /jenkins/war/*.war   /jenkins
touch /mnt/aaaaaa.txt
--------------------------------------------------------
# chmod +x /jenkins/sh/deploy.sh

13、构建任务

在这里插入图片描述

①、查看控制台输出

在这里插入图片描述

②、远程服务器接收

# ls /jenkins/war/
easy-springmvc-maven.war

# ls /jenkins/
easy-springmvc-maven.war  sh  war

# ls /mnt/
aaaaaa.txt
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐