一、实现流程
1、运维管理员创建gitlab项目,创建Jenkins项目
2、开发人员将code提交到对应的gitlab中(可按分支触发)
3、gitlab通过webhook触发对应Jenkins项目
4、进入CI环节:将code集成进标准的docker镜像中,并进行测试;
集成及测试成功,则将集成后的镜像上传至仓库中;
集成或测试失败,则结束本次Jenkins,并将原因通过邮件发送给开发者与运维管理员。
5、进入CD环节:
通过Ansible将CI集成成功的镜像部署到已定义的所有机子中,并进行测试。
如测试通过完成本次部署,如测试失败将判定该项目是否为第一次部署的;
如该项目不是第一次部署的,则滚回到上一版本的容器,并将原因通过邮件发送给运维管理员。
二、部署步骤
备注:使用的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
![](https://img.haomeiwen.com/i9677462/8a7f2702dae8768f.png)
#docker-compose -v
![](https://img.haomeiwen.com/i9677462/95093a9b040916b5.png)
#ansible all -m ping
![](https://img.haomeiwen.com/i9677462/4c40fe3df0bda119.png)
6、创建以下目录及文件
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 创建registry配置文件,无须自定义配置可跳过此步。
htpasswd -Bbn test 123456 > /home/registry/auth/htpasswd
创建登录仓库密码,若无需密码认证,可跳过此步
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、保证以下端口对外网开放
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、是否拉取了五个容器
![](https://img.haomeiwen.com/i9677462/52ff22f78ddfdf88.png)
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触发jenkins构建项目所需插件
Gitlab Hook Plugin 同上
Build Authorization Token 同上
Multijob Plugin 支持多个job之间的串并联
SSH Plugin 支持ssh链接主机插件
10、创建gitlab 项目
11、创建 jenkins项目及配置CICD
网友评论