zoukankan      html  css  js  c++  java
  • 基于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 

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

  • 相关阅读:
    CSS3——复杂选择器
    单元测试覆盖率设置
    你必须了解的「架构」小历史
    js正则表达式:学习网址和部分正则验证
    转: js实现全角半角检测的方法
    Linux and the Unix Philosophy(1)
    HTML DOM 对象
    理解css中的 content:" " 是什么意思
    JS
    js
  • 原文地址:https://www.cnblogs.com/lq-93/p/11824039.html
Copyright © 2011-2022 走看看