基於docker搭建Jenkins+Gitlab+Harbor+Rancher架構實現CI/CD操做

1、各個組件的功能描述:linux

Docker 是一個開源的應用容器引擎。nginx

Jenkis 是一個開源自動化服務器。laravel

(1).負責監控gitlab代碼、gitlab中配置文件的變更;git

(2).負責執行鏡像文件的構建、上傳與下載;docker

(3).經過Rancher插件系統構建stack/service;shell

 

GitLab: 是一個用於倉庫管理系統的開源項目,使用Git做爲代碼管理工具。npm

(1).保存項目配置文件;centos

(2).nginx定製配置文件;服務器

(3).Dockerfile文件;app

Harbor:開源的docker鏡像倉庫管理系統,比較方便管理維護鏡像。

(1)負責構建後鏡像的存儲

rancher:容器編排管理工具。

(1)經過API負責接受jenkins的調用,自動建立、更新stack/service;

(2)實現服務的擴容縮容

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部分是關鍵位置之一。

3、從零開始搭建

1.首先檢查虛擬機的版本(centos7,內核3.10及以上)

 

 

 2.安裝JDK1.8

3.確保yum 包更新到最新(截圖就不發了...更新包比較多)

yum -y update(可能須要點時間去更新)

systemctl disable firewalld.service(永遠關閉防火牆)

 以上內容最好安裝在原始機器上面(專門準備一臺虛擬機安裝JDK插件,而後其餘的安裝經過克隆,而後在進行安裝)

4、安裝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

       

 5、安裝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 

。。。。。。。。時間關係未完待續........以上狀況,親自安裝步驟並實現....

相關文章
相關標籤/搜索