saltstack 实战:配置管理文件
文件管理
master上
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模块
重启master服务
systemctl restart salt-master
配置管理文件
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
目录管理
master上
# /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 # 加上它之后,源删除文件或目录,目标也会跟着删除,否则不会删除
修改入口文件
base:
'*':
...
...
- dir
执行: salt 'salt2' state.apply dir 检查salt上是否有/tmp/testdir,检查里面的目录、文件以及权限
注意:如果source对应的目录里有空目录的话,客户端上不会创建该目录
最后更新于
这有帮助吗?