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]