xuyaxiu 发表于 2018-8-1 07:02:50

saltstack管理八之常用执行模块

.sls文件1:  
/tmp/salt/:
  
file:
  
    - directory               #目录不存在,则创建目录
  
    - name: /tmp/salt/
  
    - user: nobody
  
    - group: nobody
  
    - file_mode: 644            #与recurse递归函数一起用
  
    - dir_mode: 755             #文件权限644,目录权限755
  
    - makedirs: True
  
    - recurse:               #递归目录权限,包括用户和权限
  
      - user                   #若本来此目录就存在,且此目录下有很多文件,则recurse函数会把此目录和目录下的所有文件的权限都修改(nobody 644 755)
  
      - group
  
      - mode                   #文件644,目录755,就是上面的file_mode和dir_mode
  
      #- ignore_files         #忽略文件
  
      #- ignore_dirs
  

  
/tmp/salt/file:
  
file:
  
    - managed                   #创建文件
  
    - name: /tmp/salt/file
  
    - source: salt://web/files/httpd.conf
  
    - user: nobody
  
    - group: nobody               #若此文件本来就存在,则会修改此文件的权限(nobody 644)
  
    - mode: 644
  
    #- backup: minion
  
    #- template: jinja          #调用pillar变量和grains变量
  
    - require:
  
      - file: /tmp/salt/
  

  

  
.sls文件2:
  
{% set site_user = 'testuser' %}         #定义变量
  
{% set site_name = 'test_site' %}
  
{% set project_name = 'test_proj' %}
  
{% set sites_dir = 'test_dir' %}
  
django-project:
  
file.recurse:
  
    - name: {{ sites_dir }}/{{ site_name }}/{{ project_name }}
  
    - user: {{ site_user }}            #直接调用变量
  
    - dir_mode: 2775
  
    - file_mode: '0644'
  
    - template: jinja                   #指定template: jinja
  
    - source: salt://project/templates_dir
  
    - include_empty: True
  

  

  

  
.sls文件3:
  
/etc/http/conf/http.conf:
  
file.managed:
  
    - source: salt://apache/http.conf
  
    - user: root
  
    - group: root
  
    - mode: 644
  
    - template: jinja
  
    - defaults:               #默认变量,多个一行一个
  
      custom_var: "default value"      #这些变量将会在salt://apache/http.conf这个文件里使用
  
      other_var: 123
  
{% if grains['os'] == 'Ubuntu' %}          ##if语句要定格##
  
    - context:                #以context下的变量为准,没有时再用defaults下的变量
  
      custom_var: "override"      #这里以这个变量为准,defaults里的是无效的
  
{% endif %}
  

  
.sls文件4:
  
/tmp/dir1/file1:
  
file:
  
    - managed
  
    - makedirs: True
  
##若minion端没有dir1目录,使用makedirs函数可以直接创建dir1目录,再创建file1文件
页: [1]
查看完整版本: saltstack管理八之常用执行模块