在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. 题解:luogu P1247

    大概没你们说得复杂吧...... \(Part\;1\) \(Nim\)游戏 大家都对异或和感到懵逼吧(排除大佬),其实很简单,用\(SG\)函数打表计算即可解决: 抛个板子: void get_sg ...

  2. 014、MySQL取本月天数(这个月有多少天)

    #取本月天数 SELECT DATEDIFF( date_add( curdate( ) , INTERVAL MONTH ), DATE_ADD( curdate( ), INTERVAL DAY ...

  3. java csv文件写入

    List<String> list_code = null; 方案1 控制字符集: BufferedWriter bw=new BufferedWriter(new OutputStrea ...

  4. Golang的运算符-比较运算符

    Golang的运算符-比较运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.比较运算符概述 比较运算符也称为关系运算符,比较运算符返回的类型为bool类型,常见的比较运算符 ...

  5. 洛谷 P2426 删数

    题目传送门 解题思路: 区间DP,f[i][j]表示区间i~j可获得的最大值,因为本题的所有区间是可以直接一次性把自己全删掉的,所以所有区间初始化为被一次性删除的值,然后枚举断点,跑区间DP. AC代 ...

  6. Python练习题3

    1.九九乘法表 li = [1,2,3,4,5,6,7,8,9] for i in li: for j in li: if i >= j: print(i,'*',j,'=',i*j,end=& ...

  7. 《TensorFlow实战Google深度学习框架》笔记——TensorFlow环境搭建

    一.TensorFlow的主要依赖包 1.Protocol Buffer Protocol Buffer负责将结构化的数据序列化,并从序列化之后的数据流中还原出原来的结构化数据.TensorFlow中 ...

  8. 16 协程和www

    1.一个应用程序一般对应一个进程,一个进程一般有一个主线程,还有若干个辅助线程,线程之间是平行运行的,在线程里面可以开启协程,让程序在特定的时间内运行.2协程和线程的区别是:协程避免了无意义的调度,由 ...

  9. c# 占位符 {0} {1}

    占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号.站位符由{数字}组成,数字由0开始编号. 第1个占位符:{0} 第2个占位符:{1} 第2个占位符:{2} 初学C#之变量.占位符.转义符 ...

  10. List中bean某属性值转换为list

    List<类> lst = new ArrayList<>() ; lst.stream().map(类::get需要取得仠的属性名).collect(Collectors.t ...