前面已经讲解了Webhook实现Push代码后的jenkins自动构建,接下来通过结合slatstack 实现多台机器的项目代码发布。

利用saltstack中file.recurse方法,运用该模块可以将定义的目录下所有文件都推送到远端服务器指定的位置,而且只需要一条命令,接下来我们就演示一下该方法的用法。

master 角色服务器上

saltstack配置文件中修改file_roots路径:

grep "file_roots" -A3 -B3 /etc/salt/master | grep -vE "(^#|^$)"

这里为了方便测试,所以直接将salt的资源路径改到了nginx指向的项目根目录。

 [root@iz2ze4j1iyce3b7muq6jtiz web]# pwd
/home/web
[root@iz2ze4j1iyce3b7muq6jtiz web]# vim
.idea/ index.php mall-api-salt/ swoole/ test.sls
[root@iz2ze4j1iyce3b7muq6jtiz web]# vim test.sls
test:
file.recurse:
- source: salt://mall-api-salt
- name: /var/www/mall-api
- user: nginx
- group: nginx
- dir_mode:
- file_mode:
- include_enpty: True

注释:

file_rsync:sls文件名,这里是file_rsync.sls
file.recurse:调用file模块下的recurse方法
source: salt://tools :定义源文件,即将要推送走的文件和路径
name: /opt/tools:推送到远端服务器上的位置和名称
user: root:文件(目录)的属主
group: root:文件(目录)的用户组
dir_mode: 目录的权限为755
file_mode: 文件的权限为644
makedirs: True 如果目录不存在则创建
backup: minion 开启备份
include_enpty: True 包含空文件(目录)
执行命令:salt 对象 state.sls sls文件

利用如下命令测试:

salt '*' state.sls test

登录到minion角色服务器

可以看到已经成功

结合jenkins实现自动化发布代码到多台

有了前面的基础接下来实现需要的功能非常容易,只需要让jenkins构建成功后,执行salt的脚本即可,具体如下图。

saltstack 迭代项目到客户端并结合jenkins自动发布多台服务器的更多相关文章

  1. jenkins自动发布java代码

    注:本文来源于<KaliArch> jenkins笔记 一.相关概念 1.1 Jenkins概念: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台. ...

  2. Jenkins自动发布代码实战篇

    Jenkins自动发布代码实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Jenkins服务器配置秘钥对并上传到Gitlab中 1>.在Jenkins后端生成秘钥 ...

  3. SVN——Jenkins自动发布

    最近公司项目处于开发阶段,很多功能开发完后就需要发布到测试环境等待测试去验收,这个时候如果手动更新网站的话,是很费时费力的. 于是乎,我们做成了自动发布,这样我们只管提交代码到SVN就行了,发布由软件 ...

  4. 使用Jenkins自动发布Windows服务项目

    不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和 ...

  5. gitlab+jenkins自动发布Python包到私有仓储

    背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...

  6. Jenkins 自动发布 Spring Boot 项目(Gitee)

    1.下载 wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war,并部署到tomcat下 2.机器安装好 java ,maven ,g ...

  7. Windows系统下使用Jenkins 自动发布 .NET core到Linux平台下Docker

    准备工作(安装过程可以百度,已安装的可以跳过) a)     安装Jenkins,安装包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/windows ...

  8. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  9. 实现自动构建编译javaweb项目并发布到N台服务器

    前言 当你使用nginx实现了负载均衡,当你有了超过3台以上的应用服务器时,一个特别头疼的问题就来了,发布项目好麻烦. 你每次都要在本地编译打包一遍,然后手动复制到每一台服务器上面去,如果只有一两台服 ...

随机推荐

  1. Java相关文章

    servlet/filter/listener/interceptor区别与联系 web.xml配置详解 在Eclipse中使用JUnit4进行单元测试(初级篇) 单点登录原理与简单实现 spring ...

  2. How to Pronounce Numbers 11 – 19

    How to Pronounce Numbers 11 – 19 Share Tweet Share Tagged With: Numbers Numbers are something you’ll ...

  3. Haskell语言学习笔记(80)req

    req req 是一个好用,类型安全,可扩展,上层的HTTP客户端的库. $ cabal install req Installed req-1.1.0 Prelude> :m +Network ...

  4. LeetCode OJ 89. Gray Code

    题目 The gray code is a binary numeral system where two successive values differ in only one bit. Give ...

  5. 遍历DOM树,过滤节点

    jQuery还提供以下方法来过滤节点.  方法  说明  first()  获取第一个,示例 $('li').last()  last()  获取最后一个,示例$('li').last()  eq() ...

  6. HashMap 实现总结

    Entry类中需包含键值的hash值,防止resize时的重复计算: Map容量为2的整幂,可使用位操作取代取余操作提高效率: resize时需要将原table的桶内数据置null,利于垃圾回收: h ...

  7. 【原创】锐捷实现OSPF路由协议和NAT地址转换协议

    路由网络设计与实施 [锐捷设备实现OSPF路由协议与NAT地址转换] 说明:   本文是在多VLAN双星型交换网络的基础之上发展的.关于组建多VLAN双星型交换网络,请参阅: <思科和锐捷组建多 ...

  8. 检查浏览器是否已经启用Java支持功能

    <script type="text/javascript"> document.write("navigator对象的方法"+"< ...

  9. SimpleDateFormat 使用时出现的线程同步问题。。。

    错误使用: public static final SimpleDateFormat DAY_UI_MONTH_DAY_FORMAT = new SimpleDateFormat("MM-d ...

  10. Android 深入浅出 - 进程生命周期(Process Lifecycle)

    Android 5 个进程等级 1. Foreground Process : 2 .Visible Process : 3. Service Process : 4. Background Proc ...