在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. 百度小程序-接入自然搜索-API提交Url-c#开发

    开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...

  2. js加密(十二)yy.com rsa

    1. url: https://aq.yy.com/ 2. target: 登录js 3. 是一个简单的rsa加密,找到加密的js文件,全部复制出来,修改一下就好. 4. 和网页中的一样

  3. 0106 springMVC REST风格

    markdown 印象笔记语法练习带快捷键的 加粗 快捷键 cmd+b 斜体 cmd+i 分割线 cmd+u 编号列表: cmd+shift+o 无编号列表 cmd+shift+u 待办事项 cmd+ ...

  4. openalyser6学习

    1.安装nvm.nvm下载地址:https://github.com/coreybutler/nvm-windows/releases使用nvm-setup安装和下载nodejs:https://ww ...

  5. mqtt已断开连接(32109)

    在rabbitmq下使用mqtt协议时,如果服务质量(qos)设置为2,在发布服务时会出现[已断开连接 (32109) - java.io.EOFException]的报错. 出现该报错的其他情况还有 ...

  6. UVA - 1572 Self-Assembly(图论模型+拓扑排序)

    题意:判断利用给出的正方形是否能拼接出无限延伸的结构. 分析:正方形上的字母看做点,正方形看做有向边. 例如: 若上下两个正方形能拼接,需要B+~C+是个有向边. 对输入的处理是:把A+,A-分别映射 ...

  7. Python基础笔记:list和tuple

    list 与 tuple 就类似于C语言中的数组,list 与 tuple 的区别就是list 可修改,而tuple不可修改: list用法示例: >>> s=[] >> ...

  8. 15.swoole学习笔记--异步写入文件

    <?php //异步写入文件 $content="hello world"; swoole_async_writefile('2.txt',$content,function ...

  9. MyBatis parameterType、resultType的数据类型

    parameterType.resultType的数据类型要写全限定类名或者别名. mybatis已经给常用的数据类型起好了别名,参考mybatis.pdf  3.1.1小节: 基本数据类型很少用,一 ...

  10. springboot项目 线程消费队列注入报错误空指针

    背景: 在调用阿里云隐私保护有一个通话记录的回执消息是一个消费线程队列,这个还别人告诉我的,因为我根本没有看出来哪里是个线程了,然后我就把它当成普通的代码拿到返回值以后然后插入数据库 可是我这边该加的 ...