saltstack管理八之常用执行模块
1 .sls文件1:2 /tmp/salt/:
3 file:
4 - directory #目录不存在,则创建目录
5 - name: /tmp/salt/
6 - user: nobody
7 - group: nobody
8 - file_mode: 644 #与recurse递归函数一起用
9 - dir_mode: 755 #文件权限644,目录权限755
10 - makedirs: True
11 - recurse: #递归目录权限,包括用户和权限
12 - user #若本来此目录就存在,且此目录下有很多文件,则recurse函数会把此目录和目录下的所有文件的权限都修改(nobody 644 755)
13 - group
14 - mode #文件644,目录755,就是上面的file_mode和dir_mode
15 #- ignore_files #忽略文件
16 #- ignore_dirs
17
18 /tmp/salt/file:
19 file:
20 - managed #创建文件
21 - name: /tmp/salt/file
22 - source: salt://web/files/httpd.conf
23 - user: nobody
24 - group: nobody #若此文件本来就存在,则会修改此文件的权限(nobody 644)
25 - mode: 644
26 #- backup: minion
27 #- template: jinja #调用pillar变量和grains变量
28 - require:
29 - file: /tmp/salt/
30
31
32 .sls文件2:
33 {% set site_user = 'testuser' %} #定义变量
34 {% set site_name = 'test_site' %}
35 {% set project_name = 'test_proj' %}
36 {% set sites_dir = 'test_dir' %}
37 django-project:
38 file.recurse:
39 - name: {{ sites_dir }}/{{ site_name }}/{{ project_name }}
40 - user: {{ site_user }} #直接调用变量
41 - dir_mode: 2775
42 - file_mode: '0644'
43 - template: jinja #指定template: jinja
44 - source: salt://project/templates_dir
45 - include_empty: True
46
47
48
49 .sls文件3:
50 /etc/http/conf/http.conf:
51 file.managed:
52 - source: salt://apache/http.conf
53 - user: root
54 - group: root
55 - mode: 644
56 - template: jinja
57 - defaults: #默认变量,多个一行一个
58 custom_var: "default value" #这些变量将会在salt://apache/http.conf这个文件里使用
59 other_var: 123
60 {% if grains['os'] == 'Ubuntu' %} ##if语句要定格##
61 - context: #以context下的变量为准,没有时再用defaults下的变量
62 custom_var: "override" #这里以这个变量为准,defaults里的是无效的
63 {% endif %}
64
65 .sls文件4:
66 /tmp/dir1/file1:
67 file:
68 - managed
69 - makedirs: True
70 ##若minion端没有dir1目录,使用makedirs函数可以直接创建dir1目录,再创建file1文件
页:
[1]