CI/CD架构简介和配置(教程,ci/cd,编程语言)

时间:2023-9-23 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

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架构简介和配置的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:[Docker实现测试部署CI/CD----自由风格的CI操作[最终架构](5)]下一篇:

3 人围观 / 0 条评论 ↓快速评论↓