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

Posted lq-93

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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上下拉之前构建好的镜像到多个主机上

以上流程完整的实现了CICD,这里主要是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安装成功)

        技术图片

 

(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 

。。。。。。。。时间关系未完待续........以上情况,亲自安装步骤并实现....

 

 

 

 

以上是关于基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作的主要内容,如果未能解决你的问题,请参考以下文章

K8S基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台

docker搭建gitlab+Jenkins持续集成环境

搭建Jenkins,Gitlab自动化打包部署项目

搭建Jenkins,Gitlab自动化打包部署项目

Docker环境搭建Jenkins+gitlab+maven自动打包 部署容器