|
|
@@ -42,7 +42,7 @@ salt-minion-macos: |
|
|
|
file.managed: |
|
|
|
- onlyif: {{ grains.os == 'MacOS' }} |
|
|
|
- name: /Library/LaunchDaemons/com.saltstack.salt.minion.plist |
|
|
|
- source: https://raw.githubusercontent.com/saltstack/salt/master/pkg/darwin/com.saltstack.salt.minion.plist |
|
|
|
- source: https://raw.githubusercontent.com/saltstack/salt/master/pkg/osx/scripts/com.saltstack.salt.master.plist |
|
|
|
- source_hash: {{ salt_settings.salt_minion_macos_plist_hash }} |
|
|
|
- retry: |
|
|
|
attempts: 2 |
|
|
@@ -57,38 +57,37 @@ salt-minion-macos: |
|
|
|
- file: salt-minion-macos |
|
|
|
- require_in: |
|
|
|
- service: salt-minion |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
|
|
|
|
salt-minion: |
|
|
|
{% if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
{% if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
macpackage.installed: |
|
|
|
- name: '/tmp/salt.pkg' |
|
|
|
- target: / |
|
|
|
{# macpackage.installed behaves weirdly with version_check, detects diff but fails to complete install. #} |
|
|
|
{# use force == True as workaround #} |
|
|
|
- force: True |
|
|
|
{# macpackage.installed is weird with version_check, detects diff but incomplete install #} |
|
|
|
- force: True {# workaround #} |
|
|
|
- unless: |
|
|
|
- test -n "{{ salt_settings.version }}" && '/opt/salt/bin/salt-minion --version=.*{{ salt_settings.version }}.*' |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
- require_in: |
|
|
|
- service: salt-minion |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
- onchanges_in: |
|
|
|
- cmd: remove-macpackage-salt |
|
|
|
{%- elif grains.os != 'MacOS' and "workaround https://github.com/saltstack/salt/issues/49348" %} |
|
|
|
{%- elif grains.os != 'MacOS' and "workaround https://github.com/saltstack/salt/issues/49348" %} |
|
|
|
pkg.installed: |
|
|
|
- name: {{ salt_settings.salt_minion }} |
|
|
|
{%- if salt_settings.version %} |
|
|
|
{%- if salt_settings.version %} |
|
|
|
- version: {{ salt_settings.version }} |
|
|
|
{%- endif %} |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
{%- endif %} |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
- require_in: |
|
|
|
- service: salt-minion |
|
|
|
{% endif %} |
|
|
|
{%- endif %} |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
{%- endif %} |
|
|
|
{% endif %} |
|
|
|
file.recurse: |
|
|
|
- name: {{ salt_settings.config_path }}/minion.d |
|
|
|
{%- if salt_settings.minion_config_use_TOFS %} |
|
|
@@ -105,53 +104,55 @@ salt-minion: |
|
|
|
{%- endif %} |
|
|
|
- clean: {{ salt_settings.clean_config_d_dir }} |
|
|
|
- exclude_pat: _* |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
{% if salt_settings.minion_service_details.state != 'ignore' %} |
|
|
|
service.{{ salt_settings.minion_service_details.state }}: |
|
|
|
- enable: {{ salt_settings.minion_service_details.enabled }} |
|
|
|
- name: {{ salt_settings.minion_service }} |
|
|
|
- require: |
|
|
|
- file: salt-minion |
|
|
|
{% endif %} |
|
|
|
{%- if not salt_settings.restart_via_at %} |
|
|
|
- watch: |
|
|
|
- file: salt-master-macos |
|
|
|
- file: salt-master |
|
|
|
- file: remove-old-minion-conf-file |
|
|
|
{% endif %} |
|
|
|
{%- if not salt_settings.restart_via_at %} |
|
|
|
cmd.run: |
|
|
|
{%- if grains['saltversioninfo'] >= [ 2016, 3 ] %} |
|
|
|
{%- if grains['kernel'] == 'Windows' %} |
|
|
|
{%- if grains['saltversioninfo'] >= [ 2016, 3 ] %} |
|
|
|
{%- if grains['kernel'] == 'Windows' %} |
|
|
|
- name: 'salt-call.bat --local service.restart {{ salt_settings.minion_service }}' |
|
|
|
{%- else %} |
|
|
|
{%- else %} |
|
|
|
- name: 'salt-call --local service.restart {{ salt_settings.minion_service }} --out-file /dev/null' |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
- bg: True |
|
|
|
{%- else %} |
|
|
|
{%- if grains['kernel'] == 'Windows' %} |
|
|
|
{%- else %} |
|
|
|
{%- if grains['kernel'] == 'Windows' %} |
|
|
|
- name: 'start powershell "Restart-Service -Name {{ salt_settings.minion_service }}"' |
|
|
|
{%- else %} |
|
|
|
{%- else %} |
|
|
|
# old style, pre 2016.3. fork and disown the process |
|
|
|
- name: |- |
|
|
|
exec 0>&- # close stdin |
|
|
|
exec 1>&- # close stdout |
|
|
|
exec 2>&- # close stderr |
|
|
|
nohup salt-call --local service.restart {{ salt_settings.minion_service }} --out-file /dev/null & |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
- onchanges: |
|
|
|
{%- if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
{%- if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
- macpackage: salt-minion |
|
|
|
{%- elif grains.os == 'MacOS' %} |
|
|
|
{%- elif grains.os == 'MacOS' %} |
|
|
|
- cmd: download-salt-minion |
|
|
|
{%- else %} |
|
|
|
{%- else %} |
|
|
|
- pkg: salt-minion |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
- file: salt-minion |
|
|
|
- file: remove-old-minion-conf-file |
|
|
|
{%- else %} |
|
|
|
{%- else %} |
|
|
|
|
|
|
|
{% if grains.os != 'MacOS' %} |
|
|
|
{# MacOS has 'at' command; but there's no package to install #} |
|
|
|
{% if grains.os != 'MacOS' %} |
|
|
|
{# MacOS has 'at' command; but there's no package to install #} |
|
|
|
at: |
|
|
|
pkg.installed: [] |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
restart-salt-minion: |
|
|
|
cmd.run: |
|
|
@@ -160,20 +161,20 @@ restart-salt-minion: |
|
|
|
- require: |
|
|
|
- pkg: at |
|
|
|
- onchanges: |
|
|
|
{%- if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
{%- if salt_settings.install_packages %} |
|
|
|
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %} |
|
|
|
- macpackage: salt-minion |
|
|
|
{%- elif grains.os == 'MacOS' %} |
|
|
|
{%- elif grains.os == 'MacOS' %} |
|
|
|
- cmd: download-salt-minion |
|
|
|
{%- else %} |
|
|
|
{%- else %} |
|
|
|
- pkg: salt-minion |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
- file: salt-minion |
|
|
|
- file: remove-old-minion-conf-file |
|
|
|
{%- endif %} |
|
|
|
{%- endif %} |
|
|
|
|
|
|
|
{% if 'inotify' in salt_settings.get('minion', {}).get('beacons', {}) and salt_settings.get('pyinotify', False) %} |
|
|
|
{% if 'inotify' in salt_settings.get('minion', {}).get('beacons', {}) and salt_settings.get('pyinotify', False) %} |
|
|
|
salt-minion-beacon-inotify: |
|
|
|
pkg.installed: |
|
|
|
- name: {{ salt_settings.pyinotify }} |
|
|
@@ -181,22 +182,22 @@ salt-minion-beacon-inotify: |
|
|
|
- service: salt-minion |
|
|
|
- watch_in: |
|
|
|
- service: salt-minion |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
{% if salt_settings.minion_remove_config %} |
|
|
|
{% if salt_settings.minion_remove_config %} |
|
|
|
remove-default-minion-conf-file: |
|
|
|
file.absent: |
|
|
|
- name: {{ salt_settings.config_path }}/minion |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
# clean up old _defaults.conf file if they have it around |
|
|
|
remove-old-minion-conf-file: |
|
|
|
file.absent: |
|
|
|
- name: {{ salt_settings.config_path }}/minion.d/_defaults.conf |
|
|
|
|
|
|
|
{% if grains.os == 'MacOS' %} |
|
|
|
{% if grains.os == 'MacOS' %} |
|
|
|
remove-macpackage-salt: |
|
|
|
file.absent: |
|
|
|
- name: /tmp/salt.pkg |
|
|
|
- force: True |
|
|
|
{% endif %} |
|
|
|
{% endif %} |