Merge pull request #447 from noelmcloughlin/macos
feat(macos): basic launchctl service support (WIP)
This commit is contained in:
commit
497fbdda16
@ -41,6 +41,8 @@ salt:
|
||||
|
||||
salt_master: salt-master
|
||||
salt_minion: salt-minion
|
||||
salt_master_macos_plist_hash: ''
|
||||
salt_minion_macos_plist_hash: ''
|
||||
salt_syndic: salt-syndic
|
||||
salt_cloud: salt-cloud
|
||||
salt_api: salt-api
|
||||
|
@ -7,6 +7,21 @@ include:
|
||||
- .pin
|
||||
{% endif %}
|
||||
|
||||
{%- 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:
|
||||
attempts: 2
|
||||
until: True
|
||||
interval: 10
|
||||
splay: 10
|
||||
- require_in:
|
||||
- service: salt-master
|
||||
{%- endif %}
|
||||
|
||||
salt-master:
|
||||
{% if salt_settings.install_packages %}
|
||||
pkg.installed:
|
||||
@ -40,6 +55,7 @@ salt-master:
|
||||
- enable: {{ salt_settings.master_service_details.enabled }}
|
||||
- name: {{ salt_settings.master_service }}
|
||||
- watch:
|
||||
- file: salt-master-macos
|
||||
- file: salt-master
|
||||
- file: remove-old-master-conf-file
|
||||
{% endif %}
|
||||
|
@ -7,11 +7,11 @@ include:
|
||||
- .pin
|
||||
{% endif %}
|
||||
|
||||
{% if salt_settings.install_packages and grains.os == 'MacOS' %}
|
||||
{%- if grains.os == 'MacOS' %}
|
||||
{% if salt_settings.install_packages %}
|
||||
|
||||
download-salt-minion:
|
||||
{% if salt_settings.salt_minion_pkg_source %}
|
||||
{# only download IF we know where to get the pkg from and what version to check the current install (if installed) against #}
|
||||
{# e.g. don't download unless it appears as though we're about to try and upgrade the minion #}
|
||||
{% if salt_settings.salt_minion_pkg_source %} {# minion upgrade? #}
|
||||
file.managed:
|
||||
- name: '/tmp/salt.pkg'
|
||||
- source: {{ salt_settings.salt_minion_pkg_source }}
|
||||
@ -27,13 +27,33 @@ download-salt-minion:
|
||||
- test -n "{{ salt_settings.version }}" && '/opt/salt/bin/salt-minion --version=.*{{ salt_settings.version }}.*'
|
||||
- require_in:
|
||||
- macpackage: salt-minion
|
||||
- retry:
|
||||
attempts: 2
|
||||
until: True
|
||||
interval: 10
|
||||
splay: 10
|
||||
{%- elif "workaround https://github.com/saltstack/salt/issues/49348" %}
|
||||
cmd.run:
|
||||
- name: /usr/local/bin/brew install {{ salt_settings.salt_minion }}
|
||||
- onlyif: test -x /usr/local/bin/brew
|
||||
- runas: {{ salt_settings.rootuser }}
|
||||
{%- endif %}
|
||||
{% endif %}
|
||||
|
||||
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/osx/scripts/com.saltstack.salt.master.plist
|
||||
- source_hash: {{ salt_settings.salt_minion_macos_plist_hash }}
|
||||
- retry:
|
||||
attempts: 2
|
||||
until: True
|
||||
interval: 10
|
||||
splay: 10
|
||||
- require_in:
|
||||
- service: salt-minion
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
salt-minion:
|
||||
{% if salt_settings.install_packages %}
|
||||
@ -41,9 +61,8 @@ salt-minion:
|
||||
macpackage.installed:
|
||||
- name: '/tmp/salt.pkg'
|
||||
- target: /
|
||||
{# macpackage.installed behaves weirdly with version_check; version_check detects difference but fails to actually 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' %}
|
||||
@ -84,8 +103,10 @@ salt-minion:
|
||||
service.{{ salt_settings.minion_service_details.state }}:
|
||||
- enable: {{ salt_settings.minion_service_details.enabled }}
|
||||
- name: {{ salt_settings.minion_service }}
|
||||
- require:
|
||||
- file: salt-minion
|
||||
- watch:
|
||||
- file: salt-master-macos
|
||||
- file: salt-master
|
||||
- file: remove-old-minion-conf-file
|
||||
{% endif %}
|
||||
{%- if not salt_settings.restart_via_at %}
|
||||
cmd.run:
|
||||
|
@ -55,3 +55,9 @@ SmartOS:
|
||||
config_path: /opt/local/etc/salt
|
||||
master:
|
||||
gitfs_provider: dulwich
|
||||
|
||||
MacOS:
|
||||
minion_service: com.saltstack.salt.minion
|
||||
master_service: com.saltstack.salt.master
|
||||
salt_master_macos_plist_hash: 8435331b2d48ca8f0759f216e5b15ec9171a4216b1441328c732c6906728b7c9
|
||||
salt_minion_macos_plist_hash: 26b33da12e0d8960ee96b488c8352002c22a377c19bf3df3f986a1e49eca8b20
|
||||
|
Loading…
Reference in New Issue
Block a user