vi /etc/salt/master
# 搜索找到file_roots
打开如下内容的注释:
file_roots:
base:
- /srv/salt
mkdir /srv/salt
cd /srv/salt
# /srv/salt/top.sls
# 加入如下内容
base:
'*': #前面有两个空格
- file #前面有4个空格
# 意思是,在所有的客户端上执行httpd模块
systemctl restart salt-master
# vi /srv/salt/file.sls
file_test:
file.managed:
- name: /tmp/ping.com
- source: salt://test/123/1.txt
- user: root
- group: root
- mode: 600
说明:第一行的file_test为自定的名字,表示该配置段的名字,可以在别的配置段中引用它,source指定文件从哪里拷贝,这里的salt://test/123/1.txt相当于是/srv/salt/test/123/1.txt
mkdir /srv/salt/test/123
cp /etc/passwd /srv/salt/test/123/1.txt
# vi /srv/salt/top.sls
base:
'*':
- test
salt 'salt2' state.highstate # 检查salt2上是否有/tmp/ping.com,检查内容以及权限
salt 'salt2' state.apply file # 指定更新某个sls
# /srv/salt/dir.sls
file_dir:
file.recurse:
- name: /tmp/testdir
- source: salt://test/123
- user: root
- file_mode: 640
- dir_mode: 750
- mkdir: True
- clean: True # 加上它之后,源删除文件或目录,目标也会跟着删除,否则不会删除
注意:如果source对应的目录里有空目录的话,客户端上不会创建该目录