状态模块 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