相关概念
- 持续集成: CI(Continuous Integration) :代码合并,构建,部署,测试,不断的执行这个过程,并且对执行结果反馈。
- 持续部署: CD (Continuous Deployment) :部署到测试环境,预生产环境,生产环境。
- 持续交付:将最终产品部署到生产环境给用于使用.
- 高效的CI/CD环境有一下好处:
- 及时发现问题
- 大幅度减少故障率
- 加快迭代速度
- 加少开发成本
CI流程
相关技术
- jenkins:持续集成工具
- docker: 应用运行容器
- docker-compose:微服务编排(或者采用k8s)
- harbor: 容器镜像仓库(或者采用阿里云镜像仓库)
- git:代码管理工具
- maven: 项目构建工具
具体实施
189机器 安装 harbor(docker,docker-compose) git
188机器 安装 jenkins docker,jdk,maven
- 部署GIT代码版本仓库 (189)
# yum install git -y
# useradd git
# passwd git
# su - git
# mkdir demo.git
# cd demo.git/
# git --bare init
Jenkins主机测试访问该仓库:
# git clone git@192.168.1.189:/home/git/demo.gi
- 上传JAVA代码 (188)
模拟生产项目,拉取github上的一个demo,并上传至本地git库
cd /data0/docker/example
git clone ...
cd demo
cp -rf ../tomcat-java-demo/* ./
git add .
git commit -m "all"
git push origin master
部署Harbor镜像仓库
安装步骤参考:https://blog.csdn.net/weixin_41465338/article/details/80146218配置JDK和MAVEN环境
tar zxvf jdk-8u45-linux-x64.tar.gz
mv jdk1.8.0_45 /usr/local/jdk
tar zxf apache-maven-3.5.0-bin.tar.gz
mv apache-maven-3.5.0 /usr/local/maven
vim /etc/profile
#以下为添加到文件中的内容
#JAVA_HOME=/usr/local/jdk
#PATH=$PATH:$JAVA_HOME/bin:/usr/local/maven/bin
#export JAVA_HOME PATH
#保存退出,并将文件生效
source /etc/profile
- 安装Jenkins
官网: https://jenkins.io/zh/download/
安装包:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
## 软件安装目录/data0/software
mkdir -p /data0/java
tar -zxvf apache-tomcat-8.0.46.tar.gz -d /data0/java/
cd /data0/java
mv apache-tomcat-8.0.46 tomcat-jenkins
rm -rf /data0/java/tomcat-jenkins/webapps/*
mkdir -p /data0/java/tomcat-jenkins/webapps/ROOT
cd /data0/software
unzip jenkins.war -d /data0/java/tomcat-jenkins/webapps/ROOT
- 最后启动tomcat
打开页面:http://192.168.1.188:8080
使用默认用户密码登录,设置跳过插件安装、用户设置、实例配置,然后重新进行登录
配置Git、pipeline 两个插件,首先需要在高级设置里头将插件更新源改成国内的地址(这里采用清华园的地址)
地址改成:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,提交之后,进行测试检验。
update-center.json 仍旧使用国外网站,需要进行修改,参考:http://www.bubuko.com/infodetail-3175110.html
-
创建项目
查看并生成pipeline 拉取代码的脚本信息
需要选定ssh证书,好让它自动链接认证
ssh-keygen
- ls /root/.ssh
将公钥推送到git服务器上,git密码 a123456
#ssh-copy-id git@192.168.1.189
-
生成拉取代码脚本配置步骤如:
-
添加git凭证
- 添加分支参数,以便拉取代码分支,另外环境、镜像版本,也可以通过参数传递的方式写入
- 更新pipeline代码
- 最后保存,构建项目