一荚板、實現(xiàn)流程
1舌菜、運維管理員創(chuàng)建gitlab項目嘴瓤,創(chuàng)建Jenkins項目
2璧诵、開發(fā)人員將code提交到對應的gitlab中(可按分支觸發(fā))
3、gitlab通過webhook觸發(fā)對應Jenkins項目
4辑奈、進入CI環(huán)節(jié):將code集成進標準的docker鏡像中苛茂,并進行測試;
? ? ? ? ? ?集成及測試成功鸠窗,則將集成后的鏡像上傳至倉庫中妓羊;
? ? ? ? ? ?集成或測試失敗,則結(jié)束本次Jenkins稍计,并將原因通過郵件發(fā)送給開發(fā)者與運維管理員侍瑟。
5、進入CD環(huán)節(jié):
? ? ? ? ? ?通過Ansible將CI集成成功的鏡像部署到已定義的所有機子中丙猬,并進行測試涨颜。
? ? ? ? ? ?如測試通過完成本次部署,如測試失敗將判定該項目是否為第一次部署的茧球;
? ? ? ? ? ?如該項目不是第一次部署的庭瑰,則滾回到上一版本的容器,并將原因通過郵件發(fā)送給運維管理員抢埋。
二弹灭、部署步驟
備注:使用的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)建登錄倉庫密碼缠诅,若無需密碼認證,可跳過此步
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
訪問對應默認頁面即可;備注:容器拉取后越后2-3分鐘安裝時間邦投。
9、jenkins基本配置
cd /home/jenkins/secrets/initialAdminPassword 查看安裝密碼
將安裝密碼填入擅笔,并進行安裝志衣。
下載插件
Gitlab Plugin GitLab觸發(fā)jenkins構(gòu)建項目所需插件
Gitlab Hook Plugin 同上
Build Authorization Token 同上
Multijob Plugin 支持多個job之間的串并聯(lián)
SSH Plugin 支持ssh鏈接主機插件
10、創(chuàng)建gitlab 項目
11猛们、創(chuàng)建 jenkins項目及配置CICD