一、實現(xiàn)流程
1、運(yùn)維管理員創(chuàng)建gitlab項目,創(chuàng)建Jenkins項目
2、開發(fā)人員將code提交到對應(yīng)的gitlab中(可按分支觸發(fā))
3、gitlab通過webhook觸發(fā)對應(yīng)Jenkins項目
4、進(jìn)入CI環(huán)節(jié):將code集成進(jìn)標(biāo)準(zhǔn)的docker鏡像中,并進(jìn)行測試;
? ? ? ? ? ?集成及測試成功,則將集成后的鏡像上傳至倉庫中;
? ? ? ? ? ?集成或測試失敗,則結(jié)束本次Jenkins,并將原因通過郵件發(fā)送給開發(fā)者與運(yùn)維管理員。
5、進(jìn)入CD環(huán)節(jié):
? ? ? ? ? ?通過Ansible將CI集成成功的鏡像部署到已定義的所有機(jī)子中,并進(jìn)行測試。
? ? ? ? ? ?如測試通過完成本次部署,如測試失敗將判定該項目是否為第一次部署的;
? ? ? ? ? ?如該項目不是第一次部署的,則滾回到上一版本的容器,并將原因通過郵件發(fā)送給運(yùn)維管理員。
二、部署步驟
備注:使用的docker-compose未公開
1、安裝docker
2、安裝docker-compose
3、安裝ansible
4、安裝git
#yum install -y docker docker-compose ansible git
5、添加阿里云docker源:
vi /usr/lib/systemd/system/docker.service
--registry-mirror=https://jxus37ad.mirror.aliyuncs.com
systemctl restart docker 重啟docker
6、拉去共有鏡像
docker pull sameersbn/redis
docker pull sameersbn/postgresql:9.6-2
docker pull sameersbn/gitlab:9.2.7
docker pull docker.io/jenkins
docker pull docker.io/registry:2.3
驗證:
#docker ?images

#docker-compose ?-v

#ansible ?all ?-m ?ping

6、創(chuàng)建以下目錄及文件
mkdir -p /home/jenkins 用于掛載jenkins
chmod -R 777 /home/jenkins
mkdir -p /home/registry 用于掛載registry 配置文件
mkdir -p /home/registry/auth 用于掛載登錄倉庫賬號密碼的目錄
touch /home/registry/config.yml 創(chuàng)建registry配置文件,無須自定義配置可跳過此步。
htpasswd -Bbn test 123456 > /home/registry/auth/htpasswd
創(chuàng)建登錄倉庫密碼,若無需密碼認(rèn)證,可跳過此步
mkdir -p /srv/docker/gitlab/redis 用于掛載redis
mkdir -p /srv/docker/gitlab/postgresql 用于掛載postgresql
mkdir -p /srv/docker/gitlab/gitlab 用于掛載gitlab
更改“docker-compose-registry.yml”中的,GITLAB_HOST=
7、保證以下端口對外網(wǎng)開放
ports 10080
ports 10022
ports 8080
ports 50000
ports 5000
8、啟動容器
docker-compose -f "./docker-compose-registry.yml" up -d 拉取registry容器
docker-compose -f "./docker-compose-jenkins.yml" up -d 拉取jenkins容器
docker-compose -f "./docker-compose-gitlab.yml" up -d 拉取gitlab容器,及依賴容器
驗證:
8.1、是否拉取了五個容器

8.2、驗證倉庫
docker login -u users -p passwd HOST:PORT
如返回:Login Succeeded 則正確可用
8.3、驗證gitlab、jenkins
訪問對應(yīng)默認(rèn)頁面即可;備注:容器拉取后越后2-3分鐘安裝時間。
9、jenkins基本配置
cd /home/jenkins/secrets/initialAdminPassword 查看安裝密碼
將安裝密碼填入,并進(jìn)行安裝。
下載插件
Gitlab Plugin GitLab觸發(fā)jenkins構(gòu)建項目所需插件
Gitlab Hook Plugin 同上
Build Authorization Token 同上
Multijob Plugin 支持多個job之間的串并聯(lián)
SSH Plugin 支持ssh鏈接主機(jī)插件
10、創(chuàng)建gitlab 項目
11、創(chuàng)建 jenkins項目及配置CICD