jenkins的配置(这里作用只是当做界面使用,利用它来管理执行salt命令,这里以 shop 这个项目目录为例)

1.利用参数化构建项目,来实现是发布还是回滚操作:

2.构建操作来执行shell脚本

saltstack 的 sls文件编写

deploy.sls文件如下

deploy:
cmd.script:
- source: salt://deploy.sh
- args: "{{pillar['deploy']}} {{pillar['space']}} {{pillar['project']}} {{pillar['repertory']}} {{pillar['version']}}"
- user: www
- group: www

上面的作用就是 执行配置文件中设置资源目录 下的 deploy.sh脚本,参数为args里的,以 www用户,用户组为www 的权限来执行sh里的内容。

shell脚本编写

#!/bin/sh

deploy=$
workspace=$
#通过jenkins动态获取
project=$
repertory=$
version=$ case $deploy in
publish)
#init
if [ ! -d ${workspace} ]; then
mkdir -p $workspace
fi #echo $project
#初始化项目
if [ ! -d ${project} ]; then
cd $workspace && git clone $repertory
composer install
else
cd $project && git pull
#composer update
fi
;;
rollback)
if [ ! -d ${project} ]; then
echo "you need to create project first"
exit
else
cd $project
if [ -z ${version} ]; then
echo "回滚上一版本"
git reset --hard HEAD^
else
echo "回滚指定版本"
git reset --hard $version
fi
fi
;;
*)
exit
;;
esac

作用就是:执行sh脚本传过来的参数

1.来判断是发布还是回滚 操作(git)

如果是 publish 操作,判断 指定的目录 项目文件夹是否存在 , 存在 执行 git pull 操作,不存在(即第一次构建)执行git clone 并且 通过composer安装相关库。

如果是 rollback操作,判断 参数中version(git log的唯一hash) 是否为空,如果为空则回滚到上一版本,否则回滚到指定版本。

利用jenkins+saltstack+sh部署项目到多台服务器的更多相关文章

  1. 利用jenkins+saltstack+sh 修改nginx配置文件并重新加载

    jenkins的配置(这里作用只是当做界面使用,利用它来管理执行salt命令) 1.构建操作来执行shell脚本 (pillar可以配置灵活的参数) saltstack 的 sls文件编写 nginx ...

  2. jenkins自动部署代码到多台服务器

    下面讲一下如何通过一台jenkins服务器构建后将代码分发到其他的远程服务器,即jenkins自动部署代码到多台服务器. 1.下载 pulish over ssh 插件 2.系统管理 -> 系统 ...

  3. 【转】手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  4. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  5. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

  6. 使用jenkins 插件自动部署项目至tomcat

    前面使用maven.ant编译项目就不说,只说一下使用jenkins的插件自动部署项目 1.首先jenkins安装插件Deploy to container Plugin ,下载地址为:https:/ ...

  7. idea使用Deployment部署项目到阿里云服务器的全过程

    一.前言 之前玩了一下 Alibaba Cloud Toolkit 一键部署插件 这里顺便再提一下idea原生的Deployment自动部署项目吧,该功能也很强大,也不需要离开idea就可以直接将项目 ...

  8. 【高可用架构】借助Envoy工具发布项目到多台服务器

    前言 在上一篇,我们已经成功在开发机上部署了Deploy项目,下面我们继续在开发机上安装Envoy 两台应用服务器的IP 192.168.10.12 192.168.10.18 [高可用架构]系列链接 ...

  9. SQL Server快速部署作业到多台服务器

    问题: 需要在很多的SQL Server服务器上创建相同的作业.我们可以一台一台的运行相同的脚本创建作业,但是有没有什么简便的做法呢? 解决方法: 可能很多人都没有注意到可以用多服务器环境管理SQL ...

随机推荐

  1. 【382】利用 namedtuple 实现函数添加属性

    namedtuple 能够实现类似类的效果,tuple 的元素可以通过属性的形式返回,如下所示: from collections import namedtuple Student = namedt ...

  2. MIME sniffing攻击

    基于IE的MIME sniffing功能的跨站点脚本攻击 IE有一个特性,那就是在将一个文件展示给用户之前会首先检查文件的类型,这乍看起来并没什么问题,但实际上这是相当危险的,因为这会允许IE执行图片 ...

  3. ArcGIS自定义工具箱-判断字段值是否相等

    ArcGIS自定义工具箱-判断字段值是否相等 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:判断两个字段值是否相等 使用方法: 结果: 联系方式:谢老师,13 ...

  4. C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: ...

  5. Hide-Music-Player 一个完整的音乐播放器《IT蓝豹》

    Hide-Music-Player 一个完整的音乐播放器 Hide-Music-Player 一个完整的音乐播放器,本例子主要包括几个点 (1)摇一摇进入播放器 (2)下拉展开新视图(扫描音乐) (3 ...

  6. PR(Precision-Recall)曲线和mAP指标

    来自: https://www.zhihu.com/question/41540197 https://www.douban.com/note/518998773/ 作者:水哥链接:https://w ...

  7. Repeater - 重复器

    Repeater - 重复器,用来展示泛型集合中的数据 五大模板:1.HeaderTemplate - 头模板,加载时会在开始执行一次2.FooterTemplate - 脚模板,加载时会在最后执行一 ...

  8. JAVA 实验报告

        石家庄铁道大学信息科学与技术学院       实验报告 2018年----2019年  第一学期               题目:   四则运算.生成验证码 课程名称:  JAVA语言程序设 ...

  9. 用伪类:after画箭头

    在项目中,经常会用到尖头,尤其是表单中,会有剪头的样式,尽量不要用图片显示.用伪类实现. eg   查看更多 > html: <div class="more"> ...

  10. springboot-day01-引入如何读取配置文件以及helloWorld

    前言:该文章是紧接上一篇文章http://www.cnblogs.com/newAndHui/p/8058527.html 3.3. 实战 3.3.1.读取外部的资源配置文件 通过@PropertyS ...