基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD

一、组件功能描述

Docker 是一个开源的应用容器引擎。

Jenkis 是一个开源自动化服务器。

(1).负责监控gitlab代码、gitlab中配置文件的变动;

(2).负责执行镜像文件的构建、上传与下载;

(3).通过Rancher插件系统构建stack/service;

GitLab: 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具。

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

(2).nginx定制配置文件;

(3).Dockerfile文件;

Harbor:开源的docker镜像仓库管理系统,比较方便管理维护镜像。

(1)负责构建后镜像的存储

rancher:容器编排管理工具。

(1)通过API负责接受jenkins的调用,自动创建、更新stack/service;

(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部分是关键位置之一。

三、从零开始搭建

1.首先检查虚拟机的版本(centos7,内核3.10及以上)

 2.安装JDK1.8

3.确保yum 包更新到最新(截图就不发了...更新包比较多)

yum -y update(可能需要点时间去更新)

systemctl disable firewalld.service(永远关闭防火墙)

 以上内容最好安装在原始机器上面(专门准备一台虚拟机安装JDK插件,然后其他的安装通过克隆,然后在进行安装)

四、安装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安装成功)

        

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第1张图片

(9). 安装docker-compose

 五、安装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 

(4).查看gitlab镜像是否启动成功

docker inspect  容器id     docker ps -a 查看运行的docker镜像

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第2张图片

 (5).测试地址:http://IP:port  修改root密码

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第3张图片

 (7).gitlab安装成功之后的页面

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第4张图片

六、安装Harbor

Harbor的作用:

    开发提交代码至gitlab容器中,Jenkins拉取代码构建镜像上传到Harbor中,然后docker主机从Harbor中拉取镜像,并根据指令运行容器。

1.下载安装包:wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-online-installer-v1.1.2.tgz

2.解压安装包至/usr/local/ 目录下  tar xvf harbor-online-installer-v1.1.2.tgz  -C /usr/local

    ①.或者以上的wget命令直接在 /usr/local 下执行 ...然后 tar xvf harbor-online-installer-v1.1.2.tgz就好了..

3.修改配置文件----harbor.cfg(/usr/local/harbor/harbor.cfg)

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第5张图片

 ①.主要将hostname = 你的ip

    ui_url_protocol = http

4.安装docker-compose

    ①.下载:curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m`

   ②.重命名:mv docker-compose /usr/local/bin/docker-compose

   ③.增加权限:chmod +x /usr/local/bin/docker-compose

   ④.查看版本:docker-compose version

       

6.启动harbor

  sh /usr/local/harbor/install.sh   (可能时间会比较长)

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第6张图片

 出现以上情况,说明启动成功

7.验证(登录名:admin、密码:Harbor12345)

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第7张图片

 登录后的页面

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第8张图片

 以上内容在当前环境中安装成功....,日后若是版本更新、修改;如有错误或者更好的方法,欢迎评论区留言讨论

七、安装Jenkins

1.查看docker是否安装成功:

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第9张图片

 2.docker安装jenkis

docker search jenkis

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第10张图片

3.下载jenkis

docker pull jenkis

4.查看镜像

docker images

 5.部署jenkis

 docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

6.查看:

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD_第11张图片

说明:至此所有的服务都搭建好了。。。

你可能感兴趣的:(容器技术,运维,docker,ci,jenkins)