-
Notifications
You must be signed in to change notification settings - Fork 420
/
master.sls
89 lines (81 loc) · 2.76 KB
/
master.sls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import salt_settings with context %}
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %}
{% if salt_settings.pin_version and salt_settings.version and grains.os_family|lower == 'debian' %}
include:
- .pin
{% endif %}
{%- if grains.kernel != 'Windows' %}
{%- if grains.os == 'MacOS' %}
salt-master-macos:
file.managed:
- name: /Library/LaunchDaemons/com.saltstack.salt.master.plist
- source: https://raw.githubusercontent.com/saltstack/salt/master/pkg/osx/scripts/com.saltstack.salt.master.plist
- source_hash: {{ salt_settings.salt_master_macos_plist_hash }}
- retry: {{ salt_settings.retry_options | json }}
- require_in:
- service: salt-master
{%- endif %}
salt-master:
{% if salt_settings.install_packages %}
pkg.installed:
- name: {{ salt_settings.salt_master }}
{%- if salt_settings.version is defined %}
- version: {{ salt_settings.version }}
{%- endif %}
{% if salt_settings.master_service_details.state != 'ignore' %}
- require_in:
- service: salt-master
- watch_in:
- service: salt-master
{% endif %}
{% endif %}
file.recurse:
- name: {{ salt_settings.config_path }}/master.d
{%- if salt_settings.master_config_use_TOFS %}
- template: ''
- source: {{ files_switch(['master.d'],
lookup='salt-master'
)
}}
{%- else %}
- template: jinja
- source: salt://{{ tplroot }}/files/master.d
{%- endif %}
- clean: {{ salt_settings.clean_config_d_dir }}
- exclude_pat:
- _*
- raas.conf
{% if salt_settings.master_service_details.state != 'ignore' %}
service.{{ salt_settings.master_service_details.state }}:
- enable: {{ salt_settings.master_service_details.enabled }}
- name: {{ salt_settings.master_service }}
{%- if grains.os_family in ['FreeBSD', 'Gentoo'] %}
- retry: {{ salt_settings.retry_options | json }}
{%- endif %}
- watch:
{%- if grains.kernel|lower == 'darwin' %}
- file: salt-master-macos
{%- else %}
- file: salt-master
{%- endif %}
- file: remove-old-master-conf-file
- order: last
{% endif %}
{% if salt_settings.master_remove_config %}
remove-default-master-conf-file:
file.absent:
- name: {{ salt_settings.config_path }}/master
- watch_in:
- service: salt-master
{% endif %}
# clean up old _defaults.conf file if they have it around
remove-old-master-conf-file:
file.absent:
- name: {{ salt_settings.config_path }}/master.d/_defaults.conf
{%- else %}
salt-master-install-skip:
test.show_notification:
- text: |
No salt-master state for Windows
{%- endif %}