美文网首页啦啦啦啦啦!
CI-cmdb的gitlab和jenkins部署

CI-cmdb的gitlab和jenkins部署

作者: 夜醉梦紅尘 | 来源:发表于2019-11-14 21:12 被阅读0次

    CICD的概念:

    CI,持续集成指的是,频繁地(一天多次)将代码集成到主干。
    作用:
    (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
    (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
    目的:持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量
    CD
    持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审
    持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境


    image.png

    区别:连续交付管道会自动测试应用程序,但会将部署决策保留为手动步骤

    通过前两篇的部署,我们基本已经得到一个比较完善的环境,今天我们就来为这个项目部署jenkins和gitlab
    首先我们的总的docker-compose.yaml插入两条:

      gitlab:
        image: git
        restart: always
        hostname: 'gitlab.king.com'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://10.0.122.100:9280'
            unicorn['worker_timeout'] = 60
            unicorn['worker_processes'] = 3 # worker进程数
            unicorn['worker_memory_limit_min'] = "200 * 1 << 20" # worker最小内存
            unicorn['worker_memory_limit_max'] = "300 * 1 << 20"  # worker最大内存
            sidekiq['concurrency'] = 10
            postgresql['shared_buffers'] = "128MB"
            postgresql['max_worker_processes'] = 8
        networks:
          - jumpserver-test
        ports:
          - '9280:9280'
        volumes:
          - './gitlab/config:/etc/gitlab'
          - './gitlab/logs:/var/log/gitlab'
          - './gitlab/data:/var/opt/gitlab'
        container_name: "gitlab_server"
    
      jenkins:
          image: jenkins_blue 
          restart: always
          privileged: true
          user: root
          volumes:
            - type: bind
              source: ./jenkins/jenkins_home
              target: /var/jenkins_home
            - type: bind
              source: /Volumes/data/com.docker.docker/Data/docker.sock
              target: /var/run/docker.sock
              read_only: "yes"
          networks:
            - jumpserver-test
          ports:
            - "9980:8080"
          container_name: "jenkins_server"
    

    为了避免麻烦,此处的镜像为事先构建,jenkins的推荐插件已经安装完成,详情请看之前的文章 jenkins部署

    此时目录为:

    总体目录
    起了容器之后我们就可以分别访问jenkins(本机IP:9980)和gitlab(本机IP:9280)
    1.进入jenkins_server容器生成公钥,获取公钥放到gitlab上
    2.进入jenkins,新建任务,连接gitlab
    image.png
    配置触发器:
    image.png
    将得到的这个地址
    http://jenkins_server:9980/project/webhook-cndb,映射端口记得改一下,改为容器的端口,8080
    放到gitlab的
    image.png
    image.png
    提交不成就修改下列文件
    Admin Area(小扳手的图标)/settings/network
    image.png

    然后点击测试


    image.png

    最好定义一个简单shell命令易于显示结果

    3.这样可以实现用webhook检测gitlab上提交文件的变化,其他更多功能的灵活应用可自行定义脚本,周期性任务等

    相关文章

      网友评论

        本文标题:CI-cmdb的gitlab和jenkins部署

        本文链接:https://www.haomeiwen.com/subject/ckxdictx.html