在之前文章:超全詳解Java開發環境搭建 一文中,部分博友提出程序的自動化部署等相關問題,本篇文章就來解決該問題,即企業微服務化,如何實現服務的自動化部署?服務自動化部署需要哪些技術?
本篇文章從實戰角度講解中大型公司微服務化最核心最關鍵的六大技術,即jenkins,docker,maven,git,gitlab,harbor(本篇文章未講解nexus,在后續文章再講解),關於六大技術,會在接下來的文章中從架構,理論,實戰,常見難點和常見誤區等角度精細化講解。
Tip:本篇文章適合具有一定linux和docker基礎的讀者,對於不熟悉linux和docker的讀者朋友,可以先關注,后續文章會對每個專題從入門到架構進行講解。
一 docker安裝
1.卸載舊版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安裝相關工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.選擇穩定倉庫
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
注意:這里可以選擇阿里雲鏡像或網易雲鏡像等,也可選擇自己公司搭建的harbor鏡像倉庫
4.下載最新版docker
yum install docker-ce docker-ce-cli containerd.io
注意:如果安裝具體版本,請使用命令:yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
5.啟動docker
systemctl start docker
6.加入開機啟動
system enable docker

7.查看是否安裝成功
docker info
如下表示安裝成功
*************************特別說明***********************************
關於徹底卸載docker:
(1)查詢docker安裝過的包
yum list installed | grep docker
(2)安裝安裝包
yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y
(3)刪除容器鏡像
rm -rf /var/lib/docker
rm -rf /var/run/docker
rm -rf /etc/systemd/system/docker.service.d
(4)卸載docker相關組件
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
關於centos 官網參考:
https://docs.docker.com/install/linux/docker-ce/centos/
***********************************************************************
二 docker安裝gitlab
1.docker查找gitlab
docker search gitlab
2.拉取gialab鏡像
我們選擇鏡像名稱為gitlab/gitlab-ce的鏡像來安裝
docker pull gitlab/gitlab-ce
3.查看本地拉取的gitlab鏡像
4.啟動鏡像
docker run -itd -p 9980:80 -p 9943:443 -p 9922:22 --name gitlab gitlab/gitlab-ce:latest
啟動容器,建議采用如下方式:
docker run \
--detach \
--publish 9943:443 \
--publish 9980:80 \
--name gitlab \
--restart=always \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
注意:端口號:9980,9943,9922可以任意選擇,但是80,443,22是gitalab鏡像固定的,不要改變。
5.將端口號加入防火牆
注意:需要將映射的端口號9980,9943,9922加入防火牆,如果不加入防火牆,雖然能成功啟動gitlab鏡像,但瀏覽器訪問不了
(1)將9980,9943,9922端口號加入防火牆
firewall-cmd --permanent --add-port=9980/tcp
firewall-cmd --permanent --add-port=9943/tcp
firewall-cmd --permanent --add-port=9922/tcp
(2)重啟防火牆
systemctl reload firewalld
(3)查看防火牆允許端口
firewall-cmd --list-ports
6.設置開機啟動容器
docker update --restart=always 容器名稱
7.查看容器狀態
docker ps
如下表示啟動容器成功
8.訪問gitlab
訪問方式:ip:9980
這里的9980端口就是啟動gitlab容器時設置的端口
首次訪問時,需要設置密碼(這里設置為12346),默認賬戶為root
用剛才設置的密碼登錄
賬號/密碼:root/123456
三 harbor
(一)安裝docker-compose
關於docker-compose安裝,分為在線安裝和離線安裝。
在線安裝,請參照官網:https://docs.docker.com/compose/install/#install-compose
由於大部分公司運用程序部署在內網,因此主要講解內網安裝
1.下載docker-compose離線安裝包
github提供下載地址:https://github.com/docker/compose/releases
2.將下載的安裝包上傳到linux
我上傳到/usr/harbor_1.10.1 目錄下
3.將docker-compose-Linux-x86_64.64移動到/usr/local/bin,並重命名為docker-compose
mv docker-compose-Linux-x86_64.64 /usr/local/bin/docker-compose
4.賦權限
chmod +x /usr/local/bin/docker-compose
5.查看是否安裝成功
docker-compose -v
如下表示docker-compose安裝成功
(二)安裝python 2.7+
由於大部分電腦都自帶了python2,所以這里就不講解安裝python了。
(三)harbor安裝
3.訪問
訪問時,只需輸入ip或域名即可,默認端口號為80
賬號/密碼:admin/Alan_beijing
登錄成功后主界面如下:
*****************************************************************************
其他一下相關操作提示
******************************************************************************
1.數據存儲路徑
在默認安裝情況下,harbor存儲路徑是/data/
https://blog.csdn.net/BalaBalaYi/article/details/83338416
2.登錄harbor服務器
假若A(10.3.212.21)為harbor服務器,B服務器要操作harbor服務器鏡像,需要做如下操作:
(1)配置B服務器
vim /etc/docker/daemon.json
否則,會出現:
(2)配置完后,重啟docker
systemctl restart docker
四 部署jenkins
(一)安裝maven
1.下載maven
wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
2.將maven包移動到/usr,並解壓
mv ./apache-maven-3.6.1-bin.tar.gz /usr/apache-maven-3.6.1-bin.tar.gz
tar -zxvf apache-maven-3.6.1-bin.tar.gz
3.配置maven環境變量
vim /etc/profile
#配置maven
export MAVEN_HOME=/usr/apache-maven-3.6.1
export PATH=$MAVEN_HOME/bin:$PATH
4.source profile文件
source /etc/profile
5.查看maven是否配置成功
mvn -v,如果出現如下,就表示成功
(二)GIT安裝
git安裝有兩種方式,yum方式和通過git源碼安裝方式,本次講解通過git源安裝
1.卸載舊版本git
yum remove git
2.下載git gz包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
Tip:
如果要下載其他版本,請去官網獲取不同源url,官網源url
https://mirrors.edge.kernel.org/pub/software/scm/git/
3.解壓
tar -zxvf git-2.9.5.tar.gz
4.安裝相關依賴
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto docbook2x autoconf
yum install gcc perl-ExtUtils-MakeMaker
注意:這一步可以先跳過,等后面安裝出現問題時,再具體安裝也可(推薦)
5.配置安裝路徑
make configure
./configure prefix=/usr/git-2.9.5
6.編譯安裝
make install
7.配置變量
vim /etc/profile
export GIT_HOME=/usr/git-2.9.5
export PATH=$GIT_HOME/bin:${PATH}
8.刷新配置文件
source /etc/profile
9.查看安裝是否成功
git --version
(三)jenkins安裝
關於jenkins安裝,有兩種安裝方式,即基於linux的tomcat安裝和基於docker安裝,由於jenkins是管理核心數據的建議采用基於tomcat方式安裝,
(一)基於linux的tomcat方式安裝
這種方式就是傳統tomcat部署方式,即將jenkins.war放在tomcat中即可,在后續專題講解jenkins中講解,這里不講解。
(二)基於docker安裝
1.docker查找jenkins鏡像
2.拉取鏡像
docker pull jenkins
3.創建目錄
這個目錄可以隨意指定,我這里創建為: mkdir /usr/jenkins
4.為剛才創建的目錄賦予權限
chmod 777 /usr/jenkins/
5.啟動鏡像
需要注意的是:需要先將映射的端開啟防火牆允許,如下映射的端口9090和5000需要讓防火牆允許。
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /usr/jenkins:/var/jenkins_home jenkins:latest
6.訪問
訪問方式:ip:9090或域名訪問
注意:這里的9090端口為如上映射的端號
7.初始密碼
初始密碼在/var/jenkins_home/secrets/initialAdminPassword,操作步驟如下:
(1)查看jenkins容器id
docker ps
(2)進入容器
進入容器格式為:
(3)查看密碼
cat /var/jengkins_home/secrets/initialAdminPassword
(4)用查詢到密碼登錄
如下表示登錄成功。
五 總結
本篇文章從操作角度講解了docker,jenkins,git,maven,harbor,gitlab,在后續文章,會按照七個專題(docker,jenkins,git,maven,
harbor,gitlab和nexus)從架構,實戰,常見難點,常見誤區等角度精細化講解,感興趣的讀者,可以加入架構師群(820424)一起交流
分享,架構師群每天都會分享技術干活,設計到基礎技術,中級技術,高級技術,架構師技術,PM技術和微服務架構等,且群里提出的問題24h內
必解決。
六 版權區
感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
從入門到架構群:820424。
極少部分文章利用讀書、參考、引用、抄襲、復制和粘貼等多種方式整合而成的,大部分為原創。
如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:2098469527@qq.com。
可以轉載該博客,但必須著名博客來源。