做为配置管理中几乎是使用最频繁的一个函数,这一节我们一起来用实际操作看看file.managed函数各个常用参数的使用。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
file.managed作用
算是salt.states.file
模块中使用最普遍的一个函数了,功能是将一个文件从master端传递到minion端,使得两边的内容一致。
这个文件的内容可以是某种模板语言,例如jinja,从而使得master端文件维持不变的情况下传递到minion端的文件内容灵活多变。
参数详解
- name
存放在minion端的文件路径,必须是绝对路径。通常这个参数作为了state文件里面的ID。
例如
name: /home/vagrant/test.txt
- source
存放在master端的文件路径,必须是相对于file_roots的路径。file_roots用salt://
来表示,默认情况下的路径为/srv/salt/
。
假如有个文件路径为/srv/salt/files/test.txt
,那么这个参数应该配置为
source: salt://files/test.txt
有了name
和source
两个参数就可以完整最基本的文件传输功能,例如创建一个state文件file_backup_test.sls
如下
/home/vagrant/file_backup_test.txt:
file.managed:
- source: salt://files/file_backup_test.txt
就可以把master端的/srv/salt/files/file_backup_test.txt
同步到minion端的/home/vagrant/file_backup_test.txt
。
- user
设置目标文件的user属性,默认情况下是salt-minion的执行用户root
- group
设置目标文件的group属性,默认情况下是salt-minion的group也是root
windows机器不支持
- mode
类似于chmod
命令,后面接给目标文件设置的rwx属性。默认情况下umask为022,所以新建的文件mode为644。
windows机器不支持
- attrs
类似于chattr
命令,常用的attribute有i
或者a
。需要注意的是设置i
的话表示将文件设置为不可修改,这时候虽然修改成功了,但是会返回失败,如下