企業級Docker+Jenkins+Gitlab自動化構建平台搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

注:其他報錯不要理會,看到圖中紅圈標記,即可安裝gitlab!

2、安裝gitlab

yum install gitlab-ce -y

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

啟動gitlab

gitlab-ctl reconfigure

vim /etc/gitlab/gitlab.rb

修改external_url為gitlab機子的ip要使用的端口,如:http:// 192.168.139.150:8888

修改nginx['listen_port'] = 8888

重新配置gitlab並重啟

gitlab-ctl reconfigure #第一次啟動需要一點時間

gitlab-ctl restart

Gitlab的漢化

1、下載漢化版本庫之前先檢查系統已經安裝的Gitlab版本號,確保與克隆獲取的版本庫版本號一致

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看系統已經安裝的Gitlab版本號

2、下載gitlab版本對應的漢化包

mkdir /home/tools -pv

cd /home/tools

git clone https://gitlab.com/xhang/gitlab.git

3、停止gitlab,並導出導出 patch 用的 diff 文件到/home/tools下

gitlab-ctl stop

cd gitlab

git fetch

git diff v11.3.4 v11.3.4-zh > ../11.3.4-zh.diff

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

4、返回到/home/tools下,並安裝漢化包

cd ..

yum install patch -y

patch -d /opt/gitlab/embedded/service/gitlab-rails/ -p1 < 11.3.4-zh.diff

注:接下來看到這些圖片,不要猶豫,一路回車到底!!!回車很多(估計有10個的樣子),請耐心輸入!!!

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

5、重新配置生效

gitlab-ctl reconfigure

6、啟動gitlab

gitlab-ctl restart

7、漢化成功

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

Harbor私有倉庫部署

Harbor是由VMware公司開源的企業級的Docker Registry管理項目,它包括權限管理(RBAC)、LDAP、日誌審核、管理界面、自我註冊、鏡像複製和中文支持等功能。

docker-compose的安裝

方法一(推薦使用):

curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose version

注:如果出現該錯誤"curl: (35) Peer reports incompatible or unsupported protocol version."

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

則需要安裝插件:

yum update -y nss curl libcurl

再次運行命令,問題解決!

方法二:

CentOS:

yum install epel-release -y

yum install python-pip -y

Ubuntu:

apt-get install python-pip -y

# 通用命令

pip --version

pip install --upgrade pip

pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose

docker-compose version

docker-ce的安裝

1、安裝一些必要的系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加docker鏡像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安裝 Docker-CE(建議指定安裝版本,主版本號要與docker-compose一致)

yum -y install docker-ce

指定版本命令:

yum install -y docker-ce-18.03.1.ce-1.el7.centos

注:使用"yum list docker-ce.x86_64 --showduplicates | sort -r"可以查看所有版本,如下:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

安裝特定版本使用命令"yum -y install docker-ce-[VERSION]",如下圖所示:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

4、開啟Docker服務

systemctl start docker

配置docker加速器

首先修改 /etc/docker/daemon.json 文件(vim /etc/docker/daemon.json)並添加上 registry-mirrors 鍵值。

{ "registry-mirrors": ["https://registry.docker-cn.com"]}

修改保存後重啟 Docker 以使配置生效。systemctl restart docker

Harbor私有倉庫的安裝

下載Harbor安裝文件

從 github harbor 官網 release 頁面下載指定版本的安裝包。

1、在線安裝包

mkdir /home/tools -pv

cd /home/tools

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

tar xvf harbor-online-installer-v1.1.2.tgz

2、離線安裝包

mkdir /home/tools -pv

cd /home/tools

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz

tar xvf harbor-offline-installer-v1.1.2.tgz

注:推薦使用第二種,因為第一種在線安裝可能由於官網源的網絡波動導致安裝失敗。

配置Harbor

1、進入harbor的根目錄

mv /home/tools/harbor/ /usr/local/

cd /usr/local/harbor

2、配置harbor.cfg文件

vim harbor.cfg

修改如下部分:

hostname = 192.168.139.99

ui_url_protocol = http

harbor_admin_password = 123 #根據實際情況修改

project_creation_restriction = adminonly #或修改為everyone

參數說明:

hostname = harbor.51cto.wang (前端域名,也可以是IP,不能是localhost/127.0.0.1)

ui_url_protocol = https (使用默認的http會導致docker login登錄不了,且不安全)

ssl_cert = /data/harbor/cert/server.crt (證書存放目錄及文件名)

ssl_cert_key = /data/harbor/cert/server.key

auth_mode = db_auth (本地數據庫認證)

harbor_admin_password = Harbor12345 (admin用戶的密碼)

project_creation_restriction = adminonly (僅管理員可以創建項目,everyone為所有人可以創建項目)

self_registration = on (開啟自注冊功能)

生成配置文件並啟動容器

1、運行harbor根目錄下的install.sh腳本,harbor服務就會根據當期目錄下的docker-compose.yml開始下載依賴的鏡像,檢測並按照順序依次啟動,如下圖:

cd /usr/local/harbor/

systemctl start docker #記得要先運行docker,不然會報錯!

./install.sh

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

[Step 0]: checking installation environment ...

Note: docker version: 18.03.1

Note: docker-compose version: 1.18.0

[Step 1]: loading Harbor images ...

[Step 2]: preparing environment ...

[Step 3]: checking existing instance of Harbor ...

Now you should be able to visit the admin portal at http://192.168.139.99.

For more details, please visit https://github.com/vmware/harbor .

注:"docker version"和"docker-compose version"的主版本必須一致,否則會報錯,[Step 2]: preparing environment ...這一步無法進行!!!

2、查看harbor依賴的鏡像及啟動服務如下:

docker images

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

3、執行docker-compose ps

docker-compose ps

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

注:執行該命令時候出現幾次報錯,信息如下:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

解決辦法:

mkdir -p /usr/local/harbor/common/config/ui/

mkdir -p /usr/local/harbor/common/config/db

mkdir -p /usr/local/harbor/common/config/jobservice

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/ui/

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/db

cp /usr/local/harbor/common/templates/adminserver/env /usr/local/harbor/common/config/jobservice

還有一個需要注意的地方:

[root@k8s-master bin]# docker-compose ps

ERROR:

Can't find a suitable configuration file in this directory or any

parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

4、輸入docker-compose up命令用於啟動harbor倉庫

docker-compose up

注:[root@k8s-master bin]# docker-compose up

ERROR:

Can't find a suitable configuration file in this directory or any

parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

這個問題主要是docker-compose ps(up、stop、rm)等命令需要在包含*.yaml這類的文件夾下執行!!!

訪問harbor倉庫的web界面

1、訪問web界面http:// http://192.168.139.99

用戶名:admin

密碼:123 #之前修改過了

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

2、登陸web界面

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

客戶端連接鏡像倉庫配置過程

客戶端連接倉庫

1、在客戶端輸入

docker login 192.168.139.99

出現如下報錯:

[root@k8s-node-1 sysconfig]# docker login 192.168.139.99

Username: admin

Password:

Error response from daemon: Get https://192.168.139.99/v2/: dial tcp 192.168.139.99:443: getsockopt: connection refused

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

這是因為docker1.3.2版本開始默認docker registry使用的是https,我們設置Harbor默認http方式,所以當執行用docker login、pull、push等命令操作非https的docker regsitry的時就會報錯。解決辦法:

· 如果系統是MacOS,則可以點擊"Preference"裡面的"Advanced"在"Insecure Registry"里加上docker.bksx.com,重啟Docker客戶端就可以了。

· 如果系統是Ubuntu,則修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart參數,增加– insecure-registry docker.bksx.com。

· 如果系統是Centos,可以修改配置vim /usr/lib/systemd/system/docker.service,將ExecStart=/usr/bin/dockerd增加 --insecure-registry=192.168.139.99。

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

· 如果是新版本的docker在/etc/sysconfig/ 沒有docker這個配置文件的情況下。

在daemon.json中添加以下參數

[root@localhost harbor]# cat /etc/docker/daemon.json

{

"insecure-registries": [

"docker.bksx.com"

]

}

注:如果沒有"daemon.json"這個文件,創建一個即可!

2、重啟docker

systemctl daemon-reload

systemctl restart docker

Rancher容器管理平臺部署

Rancher是一個開源的企業級容器管理平臺。通過Rancher,企業再也不必自己使用一系列的開源軟件去從頭搭建容器服務平臺。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平臺。

說明:安裝Rancher需要依賴於docker,因為在上一章節已經安裝了docker,所以這裡將不再累述!

Rancher服務端安裝

1、安裝依賴

yum install -y yum-utils device-mapper-persistent-data lvm2

2、Rancher安裝

docker run -d --restart=unless-stopped -p 8080:8080 rancher/server

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

安裝完成

3、查看rancher運行的容器

docker ps

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

4、訪問rancher

http://192.168.139.99:8080

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

Jenkins的安裝配置

說明:之前的教程中Jenkins都是使用war包安裝,本次則使用yum安裝!

Jenkins是一個獨立的開源自動化服務器,可用於自動化各種任務,如構建,測試和部署軟件。Jenkins可以通過本機系統包Docker安裝,甚至可以通過安裝Java Runtime Environment的任何機器獨立運行。

安裝配置maven

1、安裝maven

cd /usr/local/

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxvf apache-maven-3.5.4-bin.tar.gz

重命名maven

mv apache-maven-3.5.4 maven

刪除maven壓縮包

rm -fr apache-maven-3.5.4-bin.tar.gz

2、配置maven環境變量

vim /etc/profile

###maven env###

MAVEN_HOME=/usr/local/maven

PATH=$PATH:$MAVEN_HOME/bin

export PATH MAVEN_HOME

使環境變量生效

source /etc/profile

查看maven版本

mvn --version

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

3、配置maven阿里雲鏡像

vim /usr/local/maven/conf/settings.xml

alimaven

central

aliyun maven

http://maven.aliyun.com/nexus/content/groups/public/

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

安裝配置java

1、使用官方的二進制包解壓安裝,官方二進制包的下載地址

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2、安裝java(解壓、移動即可)

cd /home/tools

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/

mv /usr/local/jdk1.8.0_171/ /usr/local/java

用全路徑驗證java是否安裝成功

/usr/local/java/bin/java -version

3、配置java環境變量/etc/profile

export JAVA_HOME=/usr/local/java/

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

環境變量立即生效

source /etc/profile

注:發現有openjdk

[root@master-2 local]# rpm -qa | grep jdk

java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

copy-jdk-configs-2.2-3.el7.noarch

java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

使用如下命令刪除:

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

4、java版本查看

java -version

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

安裝Jenkins

1、下載Jenkins源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

2、安裝Jenkins源

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3、安裝Jenkins

yum install jenkins -y

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

4、配置Jenkins

vim /etc/sysconfig/jenkins

JENKINS_USER="root" #將用戶改為root,默認為JENKINS

JENKINS_PORT="8888" #默認端口為8080,用戶可以根據自己需求修改端口

5、啟動Jenkins

/etc/init.d/jenkins start

報錯:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

使用命令journalctl -xe查看,顯示如下結果:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

注意圖中紅圈中的內容"Starting Jenkins bash: /usr/bin/java: No such file or directory"!說明Jenkins在啟動的時候,回去尋找java根目錄下bin目錄中的命令,但是java的安裝目錄並不在"/usr/bin/java",所以需要在"vim /etc/rc.d/init.d/jenkins"文件中添加如下:

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

/usr/local/java/bin/java

再次啟動Jenkins,成功!!!

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

6、解鎖Jenkins

[root@master-2 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

97c469b54a2d4f3ab817ce5835e3d64a

7、初始化Jenkins

這裡選擇"安裝推薦的插件"

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

企業級Docker+Jenkins+Gitlab自動化構建平臺搭建(圖文教程)

至此"企業級Docker+Jenkins+Gitlab自動化構建平臺"已經搭建完成!接下來是自動化構建實踐!


分享到:


相關文章: