saltstack之文件管理

1.managed文件管理

/srv/salt/file/managed.sls

/tmp/hyxc:
  file.managed:
    - source:
      - salt://files/hyxc
      - salt://files/hwg
    - makedirs: True
#    - replace: False
    - user: root
    - group: root
    - mode: 644
- backup: minion - template: jinja

 执行如下命令完成源文件管理

salt 'test82.salt.cn' state.sls file.managed

若文件之前存在,且源文件相对有更改,则管理后在/var/cache/salt/minion/file_backup/可看见该文件的备份文件

2.append文件管理

/srv/salt/file/append.sls

/tmp/hyxc:
  file.append:
    - text: |
         hyxc

执行如下命令在文件末尾添加一行

salt 'test82.salt.cn' state.sls file.append

3.recurse递归管理文件

/srv/salt/file/recurse.sls

/tmp/hwg:
  file.recurse:
    - source: salt://files/hwg
    - user: nobody
    - group: nobody
    - file_mode: 644
    - dir_mode: 755
    - include_empty: Ture
#    - clean: Ture
#    - exclude_pat: E@(hh)
#    - include_pat: E@(ss)

执行如下命令完成文件递归管理

salt 'test82.salt.cn' state.sls file.recurse

4.directory目录管理

/srv/salt/file/directory.sls

/tmp/hwg:
  file.directory:
    - user: root
    - group: root
    - dir_mode: 755
    - file_mode: 644
    - makedirs: True
    - recurse:
      - user
      - group
      - mode

执行如下命令即可创建目录

salt 'test82.salt.cn' state.sls file.directory

5.absent删除文件或目录

/srv/salt/file/absent.sls

/tmp/hwg:
  file.absent:
    - name: /tmp/hwg

执行如下命令删除文件

salt 'test82.salt.cn' state.sls file.absent

或在命令行执行如下

salt '*' file.remove /tmp/hyxc

6.注释文件的指定行,取消注释用uncomment

/srv/salt/file/comment.sls

/tmp/hyxc:
  file.comment:
    - regex: ^text 2
    - backup : .bak
    - char: #

命令行执行如下命令完成注释

salt 'test82.salt.cn' state.sls file.comment

7.rename重命名文件

/srv/salt/file/rename.sls

/tmp/jim:
  file.rename:
    - source: /tmp/hwg

命令行执行如下命令实现重命名

salt 'test82.salt.cn' state.sls file.rename

8.replace替换文件内容

/srv/salt/file/replace.sls

/tmp/hyxc:
  file.replace:
    - pattern: |
       jim
    - repl: |
       hyxc

命令行执行如下命令进行替换

salt 'test82.salt.cn' state.sls file.replace

或命令行直接执行如下

salt '*' file.replace /path/to/file pattern='=' repl=':'

9.exists检查文件是否存在

/srv/salt/file/exists.sls

/tmp/hyxc:
  file.exists:
    - name: /tmp/hyxc

命令行执行如下命令检查

salt 'test82.salt.cn' state.sls file.exists

 或在命令行直接执行如下命令

salt 'test82.salt.cn' file.file_exists /etc/passwd

10. 命令行执行命令

更改文件属主属组

salt '*' file.chown /etc/passwd root root

更改文件属组

salt '*' file.chgrp /etc/passwd root
原文地址:https://www.cnblogs.com/jim-hwg/p/4615583.html