在jenkins上安装salt-master,

pipeline{
agent{
      node{
               label 'master'
               customWorkspace '/srv/salt/xxx/result'
         }
}
parameters {
       choice(name: 'app_name', choices: ['xxx-client', 'xx-server', 'xx'], description: 'app_name')
       choice(name: 'server_name', choices: ['10.83.64.143'], description: 'server_name')
       string(name: 'version',description: 'branch')
  }
environment {
        APP_NAME = "${params.app_name}"
}
 tools {
        maven 'M3'
        jdk 'jdk1.8.0_92'
  }
 stages{
       stage('get code'){
             steps{
                     checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '',                      filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: 'svnchenbin', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: "https://10.83.32.2/svn/xx/xxx/branches/${params.version}/xx"]], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
            }
      }
       stage('build'){
            parallel {
                   stage('build-xx'){
                         when { environment name: 'APP_NAME', value: 'xxxx' }
                        steps{
                                sh 'mvn clean install -Dmaven.test.skip=true -f xxx/pom.xml'
                       }
                  }
                  stage('build-xx-x-server'){
                           when {
                          anyOf{
                                 environment name: 'APP_NAME', value: 'xx-client'
                                 environment name: 'APP_NAME', value: 'xx-server'
                            }
                 }
                        steps{
                                  sh 'mvn clean install -Dmaven.test.skip=true -f pom.xml'
                        }
               }
             }
        }
          stage('deploy'){
                steps{
                      sh "/usr/local/python3/bin/salt $server_name state.sls xxx/$app_name"
                   }
          }
}
post {
           always {
                     echo "Send notifications for result: ${currentBuild.currentResult}}"
                     sh '/usr/local/python3/bin/salt $server_name cmd.run "ps -ef|grep $app_name|grep -v grep"'
            }
      }

}

jenkins+saltstack+pipeline 部署springcloud 多模块jar包的更多相关文章

  1. Jenkins使用pipeline部署服务到远程服务器

    写这篇文章是对之前搭建Jenkins做的修改和完善,让jenkins更好的为我们服务 Docker搭建Jenkins服务 使用过程中遇到的问题: 为方便部署,打算将jenkins用到的jdk11.ma ...

  2. Maven的assembly插件实现自定义打包部署(包含依赖jar包)

    微服务必备 优点: 1.可以直接导入依赖jar包 2.可以添加插件启动 .sh 文件 3.插件的配置以及微服务的统一打包方式 1.首先我们需要在pom.xml中配置maven的assembly插件 & ...

  3. Maven依赖的Scope去除部署不需要的jar 包(打包)

    <dependency> < groupId>javax.servlet</groupId> < artifactId>jsp-api</arti ...

  4. 利用jenkins+saltstack+sh部署项目到多台服务器

    jenkins的配置(这里作用只是当做界面使用,利用它来管理执行salt命令,这里以 shop.51ekt.com 这个项目目录为例) 1.利用参数化构建项目,来实现是发布还是回滚操作: 2.构建操作 ...

  5. k8s + docker + Jenkins使用Pipeline部署SpringBoot项目时Jenkins错误集锦

    背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docke ...

  6. jenkins构建maven聚合项目,发布jar包,可配置单独发布某个模块

    https://blog.csdn.net/qq_42703181/article/details/109643330

  7. 网站日志流量分析采集(LuaJIT系统环境部署-node03,相关jar包自己手动上传)

    注:/usr/local/src 是源码包路径,可以自己更改 服务器中安装依赖 yum -y install gcc perl pcre-devel openssl openssl-devel 上传 ...

  8. jenkins 流水线自动化部署 手动下载安装插件包

    如果有些插件不能通过可选插件安装,可以进行选择高级并上传插件包,插件包链接地址为:http://updates.jenkins-ci.org/download/plugins/ 同时在高级中可以更换下 ...

  9. 十一、Docker搭建部署SpringCloud微服务项目Demo

    环境介绍 技术选型:SpringCloud&SpringCloud Alibaba&Docker 微服务模块划分: 员工模块:ems-employees 部门模块:ems-depart ...

随机推荐

  1. Python连载61-tkinter三种布局

    一.pack布局举例 #pack布局案例 import tkinter baseFrame = tkinter.Tk() #以下代码都是创建一个组件,然后布局 btn1 = tkinter.Butto ...

  2. Spring的AOP开发(基于AspectJ的XML方式)

    Spring的AOP的简介: AOP思想最早是由AOP联盟组织提出的.Spring是使用这种思想最好的框架 Spring的AOP有自己实现的方式(非常繁琐). Aspect是一个AOP的框架, Spr ...

  3. Web application architecture overview

  4. 创建一个TCP代理

    代理技术 代理一般被我们用于"穿墙",具体来说可以看这里,或者查wiki.理解代理背后的原理之后,便很容易知道,代理的作用不仅仅只是"穿墙".例如我们可以把经过 ...

  5. JSON数组序列化C#方法

    /// <summary> /// dataTable转换成Json格式 JSON对应关系 三层数组 /// </summary> /// <param name=&qu ...

  6. NO7 利用三剑客awk-grep-sed-head-tail等7种方法实践

    ·seq   sequence  #序列·sed   stream editor  #(三剑客老二)流编辑器.实现对文件的增删改替换查.        -n #取消默认输出.sed -n '20,30 ...

  7. P1054 求平均值

    P1054 求平均值 转跳点:

  8. 转载-- SQL连接查询2 外连接(左右联接查询)

    http://www.cnblogs.com/zhangqs008/archive/2010/07/02/2341196.html 外连接主要包括左连接.右连接和完整外部连接. 1)左连接:Left ...

  9. Jrebel 远程热部署[Idea]

    服务器端 客户端-idea remote module 在服务器端,Tomcat的webapps下新建项目文件夹,如: demo/WEB-INF/classes/[jrebel.xml]

  10. 九十一、SAP中ALV事件之五,查看状态栏,工具栏和功能键等

    一.我们按照说明,来到SE37功能模块,然后点击[转到]->[函数组]->[显示组] 二.按照说明输入SALV,点击勾选 三.点击主程序 四.点击主程序后,我们来到函数组页面,然后 五.我 ...