CI/CD架构简介和配置
导读:本文共10775字符,通常情况下阅读需要36分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:CI/CD架构 CI/CD架构简介 CI/CD:持续集成/持续发布 continuous integration/continuous deployment CI/CD主要运用了jenkins进行对后端的开发代码的拉取,经过自动编译,打包,测试后,自动发布到tomcat服务器上,实现自动化的产品上线。 CI/CD顶梁柱jenkins简介 jenkins的功能是将获取的代码进行统一的编译,打包,发布... ...
目录
(为您整理了一些要点),点击可以直达。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/profileJAVA_HOME=/usr/local/javaMAVEN_HOME=/usr/local/java/mavenPATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/binexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME[root@jenkins ~]# source /etc/profile[root@jenkins ~]# java -versionjava 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 -vApache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)Maven home: /usr/local/java/mavenJava version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/java/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
清理tomcat环境
将jenkins.war移到该目录下
[root@jenkins ~]# mv /jenkins.war /usr/local/tomcat/webapps/[root@jenkins ~]# /usr/local/tomcat/bin/startup.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat 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/javaexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jarexport TOMCAT_HOME=/usr/local/tomcat[root@webs ~]# source /etc/profile
清理tomcat默认发布目录下的neirong
创建自动上线的脚本
[root@webs ~]# mkdir -p /opt/script[root@webs ~]# cd /opt/script[root@webs script]# vi app-jenkins.sh#!/usr/bin/bash#本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。#================#Defining variablesexport JAVA_HOME=/usr/local/javawebapp_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 environmentecho "Creating related directory"mkdir -p $updata_pathmkdir -p $backup_pathecho "Move the uploaded war package to the update directory"mv $job_path/$files $updata_pathecho "========================================================="cd /optecho "Backing up java project"if [ -f $webapp_path/$files ];then tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path if [ $? -ne 0 ];then echo "打包失败,自动退出" exit 1 else echo "Checking if tomcat is started" if [ -n "$tomcat_pid" ];then kill -9 $tomcat_pid if [ $? -ne 0 ];then echo "tomcat关闭失败,将会自动退出" exit 2 fi fi cd $webapp_path rm -rf $files && rm -rf $files_dir cp $updata_path/$files $webapp_path cd /opt $tomcat_run/startup.sh sleep 5 echo "显示tomcat的pid" echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" echo "tomcat startup" echo "请手动查看tomcat日志。脚本将会自动退出" fielse echo "Checking if tomcat is started" if [ -n "$tomcat_pid" ];then kill -9 $tomcat_pid if [ $? -ne 0 ];then echo "tomcat关闭失败,将会自动退出" exit 2 fi fi cp $updata_path/$files $webapp_path $tomcat_run/startup.sh sleep 5 echo "显示tomcat的pid" echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`" echo "tomcat startup" echo "请手动查看tomcat日志。脚本将会自动退出"fi
给脚本执行权限
在jenkins页面上开始构建
在web服务器的/usr/local/tomcat/webapps/下可以看到相应的war包,再用浏览器访问web服务器检测就可以了。
CI/CD架构简介和配置的详细内容,希望对您有所帮助,信息来源于网络。