相關(guān)概念
- 持續(xù)集成: CI(Continuous Integration) :代碼合并,構(gòu)建,部署牡昆,測(cè)試,不斷的執(zhí)行這個(gè)過(guò)程,并且對(duì)執(zhí)行結(jié)果反饋丢烘。
- 持續(xù)部署: CD (Continuous Deployment) :部署到測(cè)試環(huán)境柱宦,預(yù)生產(chǎn)環(huán)境,生產(chǎn)環(huán)境播瞳。
- 持續(xù)交付:將最終產(chǎn)品部署到生產(chǎn)環(huán)境給用于使用.
- 高效的CI/CD環(huán)境有一下好處:
- 及時(shí)發(fā)現(xiàn)問(wèn)題
- 大幅度減少故障率
- 加快迭代速度
- 加少開(kāi)發(fā)成本
CI流程
相關(guān)技術(shù)
- jenkins:持續(xù)集成工具
- docker: 應(yīng)用運(yùn)行容器
- docker-compose:微服務(wù)編排(或者采用k8s)
- harbor: 容器鏡像倉(cāng)庫(kù)(或者采用阿里云鏡像倉(cāng)庫(kù))
- git:代碼管理工具
- maven: 項(xiàng)目構(gòu)建工具
具體實(shí)施
189機(jī)器 安裝 harbor(docker,docker-compose) git
188機(jī)器 安裝 jenkins docker,jdk,maven
- 部署GIT代碼版本倉(cāng)庫(kù) (189)
# yum install git -y
# useradd git
# passwd git
# su - git
# mkdir demo.git
# cd demo.git/
# git --bare init
Jenkins主機(jī)測(cè)試訪問(wèn)該倉(cāng)庫(kù):
# git clone git@192.168.1.189:/home/git/demo.gi
- 上傳JAVA代碼 (188)
模擬生產(chǎn)項(xiàng)目掸刊,拉取github上的一個(gè)demo,并上傳至本地git庫(kù)
cd /data0/docker/example
git clone ...
cd demo
cp -rf ../tomcat-java-demo/* ./
git add .
git commit -m "all"
git push origin master
部署Harbor鏡像倉(cāng)庫(kù)
安裝步驟參考:https://blog.csdn.net/weixin_41465338/article/details/80146218配置JDK和MAVEN環(huán)境
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
#以下為添加到文件中的內(nèi)容
#JAVA_HOME=/usr/local/jdk
#PATH=$PATH:$JAVA_HOME/bin:/usr/local/maven/bin
#export JAVA_HOME PATH
#保存退出赢乓,并將文件生效
source /etc/profile
- 安裝Jenkins
官網(wǎng): 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
- 最后啟動(dòng)tomcat
打開(kāi)頁(yè)面:http://192.168.1.188:8080
使用默認(rèn)用戶密碼登錄忧侧,設(shè)置跳過(guò)插件安裝、用戶設(shè)置牌芋、實(shí)例配置蚓炬,然后重新進(jìn)行登錄
配置Git、pipeline 兩個(gè)插件躺屁,首先需要在高級(jí)設(shè)置里頭將插件更新源改成國(guó)內(nèi)的地址(這里采用清華園的地址)
地址改成:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json肯夏,提交之后,進(jìn)行測(cè)試檢驗(yàn)犀暑。
update-center.json 仍舊使用國(guó)外網(wǎng)站驯击,需要進(jìn)行修改,參考:http://www.bubuko.com/infodetail-3175110.html
-
創(chuàng)建項(xiàng)目
查看并生成pipeline 拉取代碼的腳本信息
需要選定ssh證書耐亏,好讓它自動(dòng)鏈接認(rèn)證
ssh-keygen
- ls /root/.ssh
將公鑰推送到git服務(wù)器上徊都,git密碼 a123456
#ssh-copy-id git@192.168.1.189
-
生成拉取代碼腳本配置步驟如:
-
添加git憑證
- 添加分支參數(shù),以便拉取代碼分支广辰,另外環(huán)境暇矫、鏡像版本,也可以通過(guò)參數(shù)傳遞的方式寫入
- 更新pipeline代碼
- 最后保存轨域,構(gòu)建項(xiàng)目