微服務(wù)部署
1卡者、首先在A服務(wù)器上安裝好Docker+Jenkins
2妥曲、在B服務(wù)器也同樣需要安裝Docker、Docker-Compose钓株、Maven
3您单、配置Jenkinsfile文件的信息
1斋荞、將Jenkins文件放到父項(xiàng)目?jī)?nèi)
2、需要修改的地方
4虐秦、在每個(gè)需要跑的項(xiàng)目上添加一個(gè)Dockerfile文件
5平酿、項(xiàng)目依賴關(guān)系
6、將微服務(wù)項(xiàng)目上傳到服務(wù)器
7悦陋、進(jìn)入到j(luò)enkins中創(chuàng)建一個(gè)流水線任務(wù)蜈彼,配置相關(guān)信息
1、安裝插件
2俺驶、重啟Jenkins
3幸逆、流水線相關(guān)配置
4、在Jenkins中添加認(rèn)證信息
5暮现、配置A服務(wù)器的Docker的Json文件还绘,也就是配置加速器
6、上傳deploy.sh腳本文件到B服務(wù)器
7栖袋、配置Maven的私服賬號(hào)密碼
8拍顷、配置ssh免密傳輸
9、選擇要構(gòu)建的項(xiàng)目進(jìn)行構(gòu)建
可優(yōu)化的地方
1塘幅、將settings文件等配置好之后
2昔案、在Linux上安裝
3、在linux上使用git clone 倉(cāng)庫(kù)地址,把項(xiàng)目克隆本地
4电媳、cd 到項(xiàng)目文件中,輸入
5踏揣、查看項(xiàng)目是否可以編譯成功
5.1 編譯如果出問題,可能是各個(gè)項(xiàng)目中的maven插件沒有配置好
6匾乓、測(cè)試相關(guān)是否可以成功構(gòu)建鏡像
7呼伸、如果構(gòu)建失敗
微服務(wù)部署
這里部署的環(huán)境是從一臺(tái)服務(wù)器上完成自動(dòng)化部署后,將項(xiàng)目編譯、構(gòu)建鏡像上傳括享,然后通過ssh協(xié)議將項(xiàng)目發(fā)送到另一臺(tái)服務(wù)器完成部署搂根,所以需要兩臺(tái)服務(wù)器。
1铃辖、首先在A服務(wù)器上安裝好Docker+Jenkins
依次安裝好Docker剩愧、Docker-Compose、Jenkins
Docker安裝.note
安裝Docker-Compose.md
Docker安裝Jenkins.note
2娇斩、在B服務(wù)器也同樣需要安裝Docker仁卷、Docker-Compose、Maven
Docker安裝.note
安裝Docker-Compose.md
注意:B服務(wù)器可以不裝Jenkins
3犬第、配置Jenkinsfile文件的信息
1锦积、將Jenkins文件放到父項(xiàng)目?jī)?nèi)
Jenkinsfile
2、需要修改的地方
1歉嗓、全局憑證ID
2丰介、Git地址
3、項(xiàng)目名字
4鉴分、Docker私服地址
5哮幢、修改父項(xiàng)目的pom文件
只需要將下面的前綴修改成跟Jenkins文件配置對(duì)應(yīng)即可
4、在每個(gè)需要跑的項(xiàng)目上添加一個(gè)Dockerfile文件
Dockerfile
只需要在需要跑起來的項(xiàng)目上添加一個(gè)即可志珍,管理依賴的父項(xiàng)目橙垢、公共項(xiàng)目都不用
5、項(xiàng)目依賴關(guān)系
每個(gè)需要跑起來的項(xiàng)目都要引入父項(xiàng)目管理好的maven打包插件
pom(父項(xiàng)目).xml參考
pom(子子項(xiàng)目).xml參考
以下是子項(xiàng)目的pom.xml
6伦糯、將微服務(wù)項(xiàng)目上傳到服務(wù)器
7柜某、進(jìn)入到jenkins中創(chuàng)建一個(gè)流水線任務(wù),配置相關(guān)信息
1敛纲、安裝插件
參數(shù)化構(gòu)建配置(配置單個(gè)單數(shù)和多個(gè)參數(shù)),多個(gè)參數(shù)需要安裝插件Extended Choice Parameter
2喂击、重啟Jenkins
在地址欄上直接加上/restart回車即可
3、流水線相關(guān)配置
相關(guān)字段模板
onestep-gateway@9000,onestep-information@9100,onestep-user@9200,onestep-provider/audit-server@8090,onestep-provider/declaration-server@8091,onestep-provider/job-server@8092,onestep-provider/pay-server@8093,onestep-provider/receive-server@8094,onestep-provider/register-server@8095,onestep-provider/score-server@8096,onestep-provider/secretary-server@8097
網(wǎng)關(guān)服務(wù),消息服務(wù),用戶服務(wù),審計(jì)服務(wù),申報(bào)服務(wù),任務(wù)調(diào)度服務(wù),支付服務(wù),搶單服務(wù),公司注冊(cè)服務(wù),服務(wù)評(píng)分服務(wù),秘書服務(wù)
最后點(diǎn)擊保存
起名的效果圖
4载慈、在Jenkins中添加認(rèn)證信息
注意:如果是阿里云的Docker倉(cāng)庫(kù)的話,賬號(hào)就是阿里云的賬號(hào)全名珍手,密碼就是你自己設(shè)置的Docker倉(cāng)庫(kù)密碼
5办铡、配置A服務(wù)器的Docker的Json文件,也就是配置加速器
這個(gè)如果是私服Docker倉(cāng)庫(kù)就一定要配置琳要,如果是用阿里云的寡具,我這邊沒配置也是可以用的,具體操作如下:
vi /etc/docker/daemon.json
#
加入如下配置,地址是Docker私服倉(cāng)庫(kù)地址
{
"insecure-registries":
["192.168.113.103:20000"]
}
#
重啟docker
systemctl
daemon-reload
systemctl restart docker
#
啟動(dòng)Jenkins
#查看id
docker
ps -a
#啟動(dòng)Jenkins
docker
start 對(duì)應(yīng)id
6稚补、上傳deploy.sh腳本文件到B服務(wù)器
注意B服務(wù)必須裝了Docker
#將文件傳上到指定路徑
cd
opt/scripts
#將文件賦予可執(zhí)行權(quán)限
chmod
777 deploy.sh
7童叠、配置Maven的私服賬號(hào)密碼
目的:需要用來下載項(xiàng)目需要用到對(duì)應(yīng)的jar包及上傳
注意:這里的賬號(hào)密碼是Maven私服的賬號(hào)密碼
相關(guān)命令
find / -name settings.xml
# 找到對(duì)應(yīng)路徑后
vi
對(duì)應(yīng)的路徑進(jìn)行添加
8、配置ssh免密傳輸
#1.在Jenkins容器中生成密鑰
ssh-keygen
-m PEM -t rsa
#2.將密鑰發(fā)送給對(duì)方服務(wù)器
ssh-copy-id
192.168.234.30
3、在Jenkins可視化界面中厦坛,添加插件 ssh publish
4五垮、在全局配置中設(shè)置ssh信息
9、選擇要構(gòu)建的項(xiàng)目進(jìn)行構(gòu)建
可優(yōu)化的地方
可以自行測(cè)試完杜秸,再執(zhí)行Jenkins
1放仗、將settings文件等配置好之后
2、在Linux上安裝
git
yum install -y git
3撬碟、在linux上使用git clone 倉(cāng)庫(kù)地址,把項(xiàng)目克隆本地
4诞挨、cd到項(xiàng)目文件中,輸入
mvn clean
install
mvn
dockerfile:build
5、查看項(xiàng)目是否可以編譯成功
5.1編譯如果出問題呢蛤,可能是各個(gè)項(xiàng)目中的maven插件沒有配置好
6惶傻、測(cè)試相關(guān)是否可以成功構(gòu)建鏡像
docker-compose
-f shop-env.yml up -d
7、如果構(gòu)建失敗
1其障、檢查Jenkins配置文件
2银室、檢查父項(xiàng)目的pom文件是否修改前綴和Jenkins文件對(duì)應(yīng)
3、檢查流水線的相關(guān)配置等
8静秆、運(yùn)行構(gòu)建好的鏡像粮揉,然后訪問,注意先關(guān)閉防火墻