Bootstrap

持续集成 持续部署:CI/CD

CI/CD

概念:

​ 持续集成(ContinuousIntegration,简称CI),是一种软件开发实践,在实践中指只要代码有变更,就自动运行构建和测试,反馈运行结果。通俗一点来讲,就是绑定项目的代码仓库,SVN或者Git库,自动抓取新的代码,完成构建,甚至执行测试,部署到服务器。
在这里插入图片描述

优点:

  1. 能够快速暴露错误。
  2. 保证代码提交质量。
  3. 定位错误更加容易。
  4. 降低整体集成风险。
  5. 促进产品快速迭代。

流程:

1、用户提交代码到Git仓库
2、Jenkins服务器从指定Git仓库拉去代码,使用maven编译打包。
3、Jenkins服务器ssh连接应用服务器,将打包好的war或者jar包传送到应用服务器指定位置,例如 tomcat/webapps
4、Jenkins服务器在应用服务器远程执行脚本文件 重启应用服务器tomcat 或者 在应用服务器执行 java -jar 启动当前项目

Jenkins安装

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

安装步骤:

  • 在Linux上准备一个tomcat容器用于部署jenkins

  • 将jenkins.war放入tomcat容器的webapps文件夹中

  • 为了防止tomcat端口冲突,将部署jenkins的tomcat端口修改

  • 在conf/server.xml中将启动端口8080改为8081,停止端口8005改为8015

  • 启动tomcat /bin/startup.sh

  • 浏览器访问 http://xxxx:8081/jenkins
    在这里插入图片描述

  • 输入密码进行登录

    cat /root/.jenkins/secrets/initialAdminPassword
    
  • 先不安装插件,点叉即可

Git安装

Git下载地址

https://mirrors.edge.kernel.org/pub/software/scm/git/

安装所需的依赖

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

安装Git

tar -zxvf git-2.10.0.tar.gz  # 解压

yum remove git  //删除系统已经有的git ,这个一定要执行
    
cd /usr/local/soft/git-2.10.0 // 进入到git目录
    
make prefix=/usr/local/git all   //编译
    
make prefix=/usr/local/git install // 安装

配置环境变量

vim /etc/profile 
    
export GIT_HOME=/usr/local/git
    
export PATH=$PATH:$GIT/bin 
    
source /etc/profile  # 重新加载
    
git --version   # 测试

Maven安装

解压

tar -zxvf apache-maven-3.6.3.tar.gz  # 解压

配置环境变量

vim /etc/profile 
    
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
    
export PATH=$PATH:$MAVEN_HOME/bin 
    
source /etc/profile  # 重新加载
    
mvn --version   # 测试

配置本地仓库

<localRepository>/usr/local/maven/repo</localRepository>

配置阿里云镜像加速

<mirror>
		<id>alimaven</id>
		<mirrorOf>central</mirrorOf>
		<name>aliyun maven</name>								   				   
  	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

Jenkins配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

插件安装

  • 由于远程下载比较缓慢,此处将之前下载好的plugins,直接拖拽到root/.jenkins目录下即可

  • 检查插件是否安装成功
    在这里插入图片描述
    在这里插入图片描述

部署项目

  • 创建本地项目
  • 使用Git推送到远程仓库
  • 在jenkins中创建一个项目

在这里插入图片描述

在这里插入图片描述

  • 配置Git拉取代码的路径
    在这里插入图片描述

  • 配置Maven构建命令
    在这里插入图片描述

  • 准备一个用于部署项目的tomcat容器

    # 在tomcat/conf/tomcat-users.xml中配置用户
    
     <role rolename="manager-gui"/>
     <role rolename="manager-script"/>
     <role rolename="manager-jmx"/>
     <role rolename="manager-status"/>
     <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
         
    # 注意:此处配置后,如果不行,需要将META-INF下的Value标签注释掉 
    
  • 配置jenkins部署项目
    在这里插入图片描述
    在这里插入图片描述

  • 配置自动部署
    在这里插入图片描述

  • 设置git自动发送请求触发自动部署
    在这里插入图片描述
    在这里插入图片描述

  • 测试CI/CD

;