那如果要批量修改被管机器的某个配置文件怎么做?以下给出一个最简单案例。
 
先在主管机器master上查看/etc/salt/master配置文件
看到有以下几行配置文件
 
# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states
 
 
配置说明:默认以上的文件目录,就是state模块应用目录,你可将其配置项的注释 删掉,额外配置一些其它你喜欢目录树结构,然后重启master的服务,让其配置生效。
 
这里为了测验,我没有改master配置,在base目录下直接测试
首先创建文件夹
mkdir /srv/salt
接下来在这目录中创建一个state模块可解析的sls文件
vi /srv/salt/one.sls
 
#这个/tmp/foo.conf其实是一个ID,但它直接默许你要管理的minion机器上的文件位置
/tmp/foo.conf:
#使用state中的file.managed模块来管理,具体配置参考可以通过salt 'minion' sys.state_doc  file.managed这条命令来查阅
  file.managed:
#定认本端master的源文件key
    - source:
#这里的key中的VALUE对应的是salt://foo.conf,指的是salt中base目录(/srv/salt/) 下的foo.conf
      - salt://foo.conf
#将目标minion的文件控制其文件权限
    - user: root
    - user: root
    - mode: 644
#备份minion的源文件
    - backup: minion
 
接下来我们创建master要下发的配置文件示例
# echo 'saltstack Test' > /srv/salt/foo.conf
 
接下来在master通过state命令把配置批量推下去
salt -E '10.40.41.154.ubuntu1404.stg|10.40.41.154.ubuntu1404.stg'   state.sls one
10.40.41.154.ubuntu1404.stg:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf is in the correct state
     Started: 11:38:24.910375
    Duration: 31.449 ms
     Changes:   
 
Summary for 10.40.41.154.ubuntu1404.stg
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:  31.449 ms
10.40.41.155.centos7.stg:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf is in the correct state
     Started: 11:38:24.917948
    Duration: 41.525 ms
     Changes:   
 
Summary for 10.40.41.155.centos7.stg
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:  41.525 ms
 
我们当然可以从minion单台机器上向master获取
 为验证成功性,我们修改一下刚才master上的foo.conf
echo 'saltstack Test-2' > /srv/salt/foo.conf
在minion端发生命令
# salt-call state.sls one
local:
----------
          ID: /tmp/foo.conf
    Function: file.managed
      Result: True
     Comment: File /tmp/foo.conf updated
     Started: 11:40:30.638998
    Duration: 49.449 ms
     Changes:    x
              ----------
              diff:
                  ---
                  +++
                  @@ -1 +1 @@
                  -saltstack Test
                  +saltstack Test-2
 
Summary for local
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  49.449 ms
 
 
比较2台minion配置文件的差异
[root@localhost salt]# cat /tmp/foo.conf
saltstack Test-2
 
root@ubuntu:/srv/salt# cat /tmp/foo.conf
saltstack Test
 
这是最简单的配置管理
我们可通过这条命令实时追踪它state底层执行的过程:salt-run state.event pretty=True 需要一边开这个窗口monitor,另一窗口执行命令
 

saltstack布署实践 【配置文件管理-state模块】的更多相关文章

  1. saltstack布署实践 【安装】

    借用链接http://www.cnblogs.com/liuyansheng/p/6094122.html的安装方式,我再同步一下其它操作系统的安装方式,由原Docker官网拷贝 Ubuntu1404 ...

  2. openstack私有云布署实践【0 前言】

    管理控制层面示图: 其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了openstack高可用的指导思想.我们自己实践的高可用其实是适应自己的架构而做的调整,因为我们现实手头上中没有比较符 ...

  3. openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】

    云主机迁移+扩展云主机大小 ,官方说它依赖nova用户之间的免密登录.确保每个resion区域的compute节点服务器他们可以相互SSH免密   compute1-7     他们相互SSH免密 k ...

  4. openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...

  5. openstack私有云布署实践【11.2 计算nova - compute节点配置(办公网环境)】

    这里我只使用compute1节点配置为示例,其它节点的配置基本是一样的,只是声明的管理IP不同而已   计算节点 # yum install openstack-nova-compute sysfsu ...

  6. openstack私有云布署实践【11.1 计算nova - compute节点配置(科兴环境)】

    这里我只使用kxcompute1节点配置为示例,其它节点的配置基本是一样的,只是声明的管理IP不同而已   计算节点 # yum install openstack-nova-compute sysf ...

  7. openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  8. openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  9. openstack私有云布署实践【3 keepalive配置(VRRP虚IP)】

    这里只用到keepalived 或者pacemaker两种方法,可二选一来配置,官方提供的是pacemaker,但我们实际测试环境和生产环境上使的是keepalive     首先在4台control ...

随机推荐

  1. Wijmo 5 + Ionic Framework之:费用跟踪 App

    Wijmo 5 + Ionic Framework之:费用跟踪 App 费用跟踪应用采用了Wijmo5和Ionic Framework创建,目的是构建一个hybird app. 我们基于<Mob ...

  2. VS SQL 出现%CommonDir%dte80a.olb 该解决方案

    VS SQL  出现%CommonDir%dte80a.olb  该解决方案 在网上搜索解决方法的时候.别人就说你从别的电脑复制一个到C:\Program Files\Common Files\mic ...

  3. hrift 的序列化机制

    Thrift 个人实战--Thrift 的序列化机制 前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的rpc框架服务端/客户端代码 ...

  4. 我看TDD测试驱动开发

    今天在实验室给大家介绍了一下TDD和Docker,大家对TDD都比较感兴趣,包括老板,也问了一些问题. 还是从头来说TDD吧,TDD作为敏捷开发领域的领头军,充满魅力,同时也充满争议.一切从三大军规说 ...

  5. sqlserver中数据的四种插入方式

    1.insert into stuInfo(name,stuId) values('李洁','19291727')insert into stuInfo(name,stuId) values('李康' ...

  6. AjaxPro2

    AjaxPro2完整入门教程   一.目录 简单类型数据传送(介绍缓存,访问Session等) 表类型数据传送 数组类型数据传送(包含自定义类型数据) 二.环境搭建 1.这里本人用的是VS2012. ...

  7. 基于.NET打造IP智能网络视频监控系统

    开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码   开源倾情奉献系列链接 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码 开源倾情奉献:基于.NET打造 ...

  8. github 出现 Permission denied (publickey)的解决

    从github上clone的时候出现了以下错误 应该是ssh key过期了,试着重新创建ssh key,按以下步骤 1.  注意短横线前后都没有空格 接着一切都默认,它会在把ssh key 储存在 C ...

  9. iOS关于应用内分享

    iOS7.0增加了AirDrop功能,可知在未来,手机信息资源的直接分享会越来越重要.而我们在iPhone系统短信点击照片会看到右上角的分享按钮,点击可以弹出一系列的应用菜单,允许用户把这张图片分享到 ...

  10. IOS学习之路十七(通过delegate进行页面传值)

    加入有A B两个页面,要实现从A跳到B的时候把值传过去,现在用delegate协议来实现 在A中定义一个协议,定义一个实现该协议的属性变量 在B中定义一个值(要获得的值类型)和set方法. 要传值B ...