zoukankan      html  css  js  c++  java
  • centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本

    1、宿主机中创建目录

    mkdir -p /jenkins_home

    2、编辑compose文件,文件名jenkins.yml

    version: '3.4'
    services:
      jenkins-upgrade:
        volumes:
          - /jenkins_home:/var/jenkins_home
        image: jenkins/jenkins:lts
        ports:
          - 8080:8080
          - 50000:50000
        deploy:
          mode: global
          update_config:
            parallelism: 1
            delay: 10s
            order: stop-first

     宿主机端口和容器被映射的端口一定要一致

    3、部署,执行命令

    docker stack deploy -c jenkins.yml jenkins

    不好意思今天博客园抽风,贴不上图,一贴图就提示我登陆,后边再补图吧

    4、访问8080端口,选择必须的插件,配置用户名密码(略)

    5、安装插件 Maven Integration plugin 、SSH、Gitlab和Gitlab Hook Plugin

    5.1、在系统管理-全局工具配置中,找到并点击“Maven 安装...”按钮,填写Maven Name(随意填写),勾选自动安装,并保存

    6、新建一个maven任务,

    7、在源码管理中添加源码地址,增加用户名密码凭据

    8、在构建触发器中 选中Build when a change is pushed to GitLab,后边的地址就是git的webhook要填的地址,在高级中生成Secret token,也填到git的webhook中

    9、在Build中的Goals and options里填写clean package

    10、在Post Steps中添加Execute shell script on remote host using ssh,分别填写SSH的地址和要执行的命令,SSH的地址需要先在  系统管理-系统设置 的 SSH remote hosts  添加相关数据,然后才能在下拉框中选中。参考命令如下:

    /usr/local/apache-tomcat-8.5.34/bin/shutdown.sh
    rm -f /usr/local/apache-tomcat-8.5.34/webapps/upgrade.war
    cp -f /jenkins_home/workspace/upgrade-manager-maven/target/upgrade-manager-0.0.1.war /usr/local/apache-tomcat-8.5.34/webapps/upgrade.war
    /usr/local/apache-tomcat-8.5.34/bin/startup.sh

    容器集群模式部署参考命令如下:

    export LAST_HTML_IMAGE_NAME=`docker images |grep html-in-microservice|sed -n '1p'|awk {'print $1":"$2'}`
    sed -i "s#image:.*#image: $LAST_HTML_IMAGE_NAME#g" /apps/html.yml
    nohup docker save -o /docker-images/html-`docker images|grep html-in-microservice|sed -n '1p'|awk {'print $2'}`.tar $LAST_HTML_IMAGE_NAME >/dev/null 2>&1 &
    nohup docker stack deploy -c /apps/html.yml html >/dev/null 2>&1 &

    保存即可

    11、再gitlab的webhook中配置相应的内容

    之后再提交代码就会触发构筑和脚本执行

    (完毕)

  • 相关阅读:
    Spring Cloud Hystrix Dashboard的使用 5.1.3
    Spring Cloud Hystrix 服务容错保护 5.1
    Spring Cloud Ribbon 客户端负载均衡 4.3
    Spring Cloud 如何实现服务间的调用 4.2.3
    hadoop3.1集成yarn ha
    hadoop3.1 hdfs的api使用
    hadoop3.1 ha高可用部署
    hadoop3.1 分布式集群部署
    hadoop3.1伪分布式部署
    KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
  • 原文地址:https://www.cnblogs.com/flying607/p/9758917.html
Copyright © 2011-2022 走看看