CI/CD架构简介和配置

CI/CD架构

CI/CD架构简介

CI/CD:持续集成/持续发布
continuous integration/continuous deployment
CI/CD主要运用了jenkins进行对后端的开发代码的拉取,经过自动编译,打包,测试后,自动发布到tomcat服务器上,实现自动化的产品上线。

CI/CD顶梁柱jenkins简介

jenkins的功能是将获取的代码进行统一的编译,打包,发布到tomcat等容器上。
其操作界面友好,由java语言编写,需要安装jdk。

jenkins特性

  • 易安装,仅需要一个war包和jdk。
  • 图形化页面,配置简单。
  • 分布式构建:能够连接多台机器构建/测试。
  • 支持第三方插件:可以通过第三方插件来扩展功能,进行二次开发。

jenkins工作流程

在这里插入图片描述

  • step1:开发人员将代码上传到版本库
  • step2:jenkins通过配置从版本库拉取代码文件
  • step3:jenkins通过maven插件,将代码编译测试
  • step4:step3无误后通过ssh插件传递到tomcat服务器上。
  • step5:应用服务器通过shell脚本自动实现产品上线。

部署jenkins

  • 版本库部署,获取代码。(略)
  • 安获取jdk包,maven包,tomcat包,jenkins.war包,并解压到/usr/local下,改成简单的名字。(略)
    war包地址:http://updates.jenkins-ci.org/download/war/
  • 改写jdk和码maven的环境变量,将maven移到java目录下
[root@jenkins ~]# vi /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
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# 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 ~]# 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: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

清理tomcat环境

[root@jenkins ~]# rm -rf /usr/local/tomcat/webapps/*

将jenkins.war移到该目录下

[root@jenkins ~]# mv /jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# /usr/local/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.
  • 为了jenkins利用ssh的免密登陆功能,要将jenkins服务器的ssh公钥发送给web服务器
[root@jenkins ~]# ssh-keygen
[root@jenkins ~]# ssh-copy-id -i 【服务器端的ip】

浏览器访问页面
http://192.168.178.132:8080/jenkins

完成密码验证后,安装推荐的插件
在这里插入图片描述
添加以下所需要的插件
Deploy to container,Maven Integration,Publish Over SSH,ssh见图,
点击“直接安装”
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

配置ssh

记得“保存”配置
在这里插入图片描述在这里插入图片描述在这里插入图片描述

新增jdk,maven

记得“保存”配置!
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

jenkins构建发布

回到主页,新建item
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 部署web服务器:

  • 安装jdk,tomcat,改写环境变量
[root@webs ~]# vi /etc/profile
添加以下内容:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
[root@webs ~]# source /etc/profile

清理tomcat默认发布目录下的neirong

[root@webs ~]# rm -rf /usr/local/tomcat/webapps/*

创建自动上线的脚本

[root@webs ~]# mkdir -p /opt/script
[root@webs ~]# cd /opt/script
[root@webs script]# vi app-jenkins.sh
#!/usr/bin/bash
#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
#================
#Defining variables
export JAVA_HOME=/usr/local/java
webapp_path="/usr/local/tomcat/webapps"
tomcat_run="/usr/local/tomcat/bin"
updata_path="/data/update/`date +%F-%T`"
backup_path="/data/backup/`date +%F-%T`"
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
files_dir="easy-springmvc-maven"
files="easy-springmvc-maven.war"
job_path="/root/upload"#Preparation environment
echo "Creating related directory"
mkdir -p $updata_path
mkdir -p $backup_pathecho "Move the uploaded war package to the update directory"
mv $job_path/$files $updata_pathecho "========================================================="
cd /opt
echo "Backing up java project"
if [ -f $webapp_path/$files ];thentar czf $backup_path/`date +%F-%H`.tar.gz $webapp_pathif [ $? -ne 0 ];thenecho "打包失败,自动退出"exit 1elseecho "Checking if tomcat is started"if [ -n "$tomcat_pid" ];thenkill -9 $tomcat_pidif [ $? -ne 0 ];thenecho "tomcat关闭失败,将会自动退出"exit 2fificd $webapp_pathrm -rf $files && rm -rf $files_dircp $updata_path/$files $webapp_pathcd /opt$tomcat_run/startup.shsleep 5echo "显示tomcat的pid"echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"echo "tomcat startup"echo "请手动查看tomcat日志。脚本将会自动退出"fi
elseecho "Checking if tomcat is started"if [ -n "$tomcat_pid" ];thenkill -9 $tomcat_pidif [ $? -ne 0 ];thenecho "tomcat关闭失败,将会自动退出"exit 2fificp $updata_path/$files $webapp_path$tomcat_run/startup.shsleep 5echo "显示tomcat的pid"echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"echo "tomcat startup"echo "请手动查看tomcat日志。脚本将会自动退出"
fi

给脚本执行权限

[root@webs ~]# chmod 777 /opt/script/app-jenkins.sh

在jenkins页面上开始构建
在这里插入图片描述
在这里插入图片描述
在web服务器的/usr/local/tomcat/webapps/下可以看到相应的war包,再用浏览器访问web服务器检测就可以了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部