前面已经讲解了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. Delphi 中的颜色常量及效果图

    颜色名称   颜色效果   Hex HTML clBlack   $000000 #000000 clMaroon   $000080 #800000 clGreen   $008000 #00800 ...

  2. C语言复习:编译

    C接口的封装和设计专题 Win32环境下动态链接库(DLL)编程原理   比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作.其中可能存在一些模块的 ...

  3. impdp导入文件失败问题解决(ORA-39001/ORA-39000/ORA-39143)

    测试环境 SuSE11 + ORACLE11gR2 问题现象 执行 impdp导入现场导回的dmp文件,导入失败.错误提示如下 $impdp sysdb/oracle directory=imp_da ...

  4. Hibernate 再接触 组件映射

    将另外一个类嵌入到另外一个类 从而合并生成一张表 Husband.java package com.bjsxt.hibernate; import javax.persistence.Embedded ...

  5. Hibernate学习笔记2.5(Hibernate核心开发接口和三种状态)

    1.configuration(配置信息管理,产生sessionfactory) sessionfactory管理一系列的连接池 opensession 永远打开新的,需要手动close getcur ...

  6. C# 如何获取鼠标在屏幕上的位置,不论程序是否为活动状态

    一开始我认为应该使用HOOK来写,而且必须使用全局HOOK,结果在一次偶然的机会得到,原来其实根本没有那个必要. 直接上代码吧,一看就明白 Point ms = Control.MousePositi ...

  7. windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET

    IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET windows7,部署在本地的IIS7里以后,结果不能访问承载SL的.aspx页面,而如果用.html承载则可以访问. 亲测可用修复办法 ...

  8. css图标库 font-awesome.min.css

    下载font-awesome-4.4.0 同时引入font-awesome-4.4.0.min.css 通过<i class='fa fa-sign-out'></i>生成图片 ...

  9. svn转git合并代码

    在Git Bash 中输入 git-svn clone http://devsvnread.uuzuonline.net/GOT_PRIVATE/server/ --no-metadata -T tr ...

  10. lunux开放80端口(本地访问不了linux文件可能是这个原因)

    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #开启80端口  /etc/rc.d/init.d/iptables save #保存配置  / ...