一、各個組件的功能描述:
Docker 是一個開源的應用容器引擎。
Jenkis 是一個開源自動化服務器。
(1).負責監控gitlab代碼、gitlab中配置文件的變動;
(2).負責執行鏡像文件的構建、上傳與下載;
(3).通過Rancher插件系統構建stack/service;
GitLab: 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具。
(1).保存項目配置文件;
(2).nginx定制配置文件;
(3).Dockerfile文件;
Harbor:開源的docker鏡像倉庫管理系統,比較方便管理維護鏡像。
(1)負責構建后鏡像的存儲
rancher:容器編排管理工具。
(1)通過API負責接受jenkins的調用,自動創建、更新stack/service;
(2)實現服務的擴容縮容
二、流程導圖說明:
① 開發人員提交代碼提交到gitlab
②gitlab鈎子會觸發jenkins執行下載對應項目的env、nginx配置文件、Dockerfile和最新版本的代碼
③jenkins執行shell腳本:composer安裝laravel插件和npm安裝模塊,編譯生成js文件。完好的代碼通過docker build Dockerfile 指令打包成鏡像
④上傳構建好的鏡像push到harbor鏡像倉庫
⑤jenkins借助Rancher的插件通過API與rancher交互更新service達到更升級容器的目的(也就是更新代碼版本),其中pull鏡像的這一步會通過saltstack並行從harbor上下拉之前構建好的鏡像到多個主機上
以上流程完整的實現了CI\CD,這里主要是jenkins部分是關鍵位置之一。
三、從零開始搭建
1.首先檢查虛擬機的版本(centos7,內核3.10及以上)
2.安裝JDK1.8
3.確保yum 包更新到最新(截圖就不發了...更新包比較多)
yum -y update(可能需要點時間去更新)
systemctl disable firewalld.service(永遠關閉防火牆)
以上內容最好安裝在原始機器上面(專門准備一台虛擬機安裝JDK插件,然后其他的安裝通過克隆,然后在進行安裝)
四、安裝docker容器(對以上操作的集群克隆一台,需要MAC地址)
(1).卸載
舊版本:
yum remove docker docker-common docker-selinux docker-engine
(2).安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
(3).設置yum源
yum -y install yum-utils、
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(4).查看可用的所有倉庫中所有docker版本
yum list docker-ce --showduplicates | sort -r
(5).安裝docker
sudo yum install -y docker-ce
(7).設置開機並加入開機自啟動
systemctl start docker
systemctl enable docker
(8).查看docker的版本(檢查是否安裝成功,以及相關的版本)
docker version(表明docker安裝成功)
(9). 安裝docker-compose
五、安裝gitlab(代碼管理器)---使用docker進行安裝
(1).下載鏡像文件
docker pull beginor/gitlab-ce:11.0.1-ce.0
(2).創建etc、log、data目錄,便於日后升級
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data
(3).運行gitlab容器
docker run \
--detach \
--publish 8443:443 \
--publish 8090: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 \
beginor/gitlab-ce:11.0.1-ce.0
。。。。。。。。時間關系未完待續........以上情況,親自安裝步驟並實現....