Saltstack小试(6)

状态模块 STATE MODULES

top.sls必须放在base环境,确认top.sls默认在base环境下 创建3个环境

[root@node1-saltstack ~]# vim /etc/salt/master

#state_top: top.sls
file_roots:
  base:
    - /srv/salt/base
  test:
    - /srv/salt/test
  prod:
    - /srv/salt/prod

创建相应目录:

[root@node1-saltstack ~]# mkdir /srv/salt/base
[root@node1-saltstack ~]# mkdir /srv/salt/test
[root@node1-saltstack ~]# mkdir /srv/salt/prod
[root@node1-saltstack salt]# mv apache.sls top.sls /srv/salt/base/

创建一个存放文件的目录

mkdir /srv/salt/base/files

创建一个sls文件

vim /srv/salt/base/dns.sls

/etc/resolv.conf:   
  file.managed:
    - source: salt://files/resolv.conf
    - user: root
    - group: root
    - mode: 644

解析:

  • file.managed:文件有个文件管理的模块
  • source:文件源
  • user:用户
  • group:组
  • mode:权限

把files里的文件分发到minion节点

cp /etc/resolv.conf files/

有两种方法执行: 1、直接执行

[root@node1-saltstack ~]# salt ‘*’ state.sls dns

node2-saltstack:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 10:07:38.999049
    Duration: 682.272 ms
     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,2 +1 @@
                  -# Generated by NetworkManager
                   nameserver 192.168.1.1
Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1

2、加到高级状态里面

[root@node1-saltstack ~]# cat /srv/salt/base/top.sls

base:
  '*':
    - dns

执行

salt '*' state.highstate

Search

    Table of Contents