fix(macos): fix minion package handling for homebrew
This commit is contained in:
parent
6a312544dd
commit
14276e2074
@ -1,6 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=yaml
|
||||
salt:
|
||||
version: ''
|
||||
rootuser: root
|
||||
install_packages: True
|
||||
use_pip: False
|
||||
clean_config_d_dir: True
|
||||
|
@ -2,14 +2,15 @@
|
||||
{%- from tplroot ~ "/map.jinja" import salt_settings with context %}
|
||||
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %}
|
||||
|
||||
{% if salt_settings.install_packages and grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source != '' and salt_settings.version != '' %}
|
||||
{# only download IF we know where to get the pkg from and if we know 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.install_packages and grains.os == 'MacOS' %}
|
||||
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 #}
|
||||
file.managed:
|
||||
- name: '/tmp/salt.pkg'
|
||||
- source: {{ salt_settings.salt_minion_pkg_source }}
|
||||
{% if salt_settings.salt_minion_pkg_hash != '' %}
|
||||
{%- if salt_settings.salt_minion_pkg_hash %}
|
||||
- source_hash: {{ salt_settings.salt_minion_pkg_hash }}
|
||||
{% else %}
|
||||
- skip_verify: True
|
||||
@ -18,27 +19,36 @@ download-salt-minion:
|
||||
- group: wheel
|
||||
- mode: 0644
|
||||
- unless:
|
||||
- '/opt/salt/bin/salt-minion --version | grep {{ salt_settings.version }}'
|
||||
- test -n "{{ salt_settings.version }}" && '/opt/salt/bin/salt-minion --version=.*{{ salt_settings.version }}.*'
|
||||
- require_in:
|
||||
- macpackage: salt-minion
|
||||
{%- 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:
|
||||
{% if salt_settings.install_packages %}
|
||||
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source != '' and salt_settings.version != '' %}
|
||||
{%- 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; version_check detects difference but fails to actually complete install. #}
|
||||
{# use force == True as workaround #}
|
||||
- force: True
|
||||
- version_check: /opt/salt/bin/salt-minion --version=.*{{ salt_settings.version }}.*
|
||||
- unless:
|
||||
- test -n "{{ salt_settings.version }}" && '/opt/salt/bin/salt-minion --version=.*{{ salt_settings.version }}.*'
|
||||
- require_in:
|
||||
- service: salt-minion
|
||||
{%- else %}
|
||||
- onchanges_in:
|
||||
- cmd: remove-macpackage-salt
|
||||
{%- elif grains.os != 'MacOS' and "workaround https://github.com/saltstack/salt/issues/49348" %}
|
||||
pkg.installed:
|
||||
- name: {{ salt_settings.salt_minion }}
|
||||
{%- if salt_settings.version is defined %}
|
||||
{%- if salt_settings.version %}
|
||||
- version: {{ salt_settings.version }}
|
||||
{%- endif %}
|
||||
- require_in:
|
||||
@ -89,8 +99,10 @@ salt-minion:
|
||||
{%- endif %}
|
||||
- onchanges:
|
||||
{%- if salt_settings.install_packages %}
|
||||
{%- if grains.os == 'MacOS' %}
|
||||
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %}
|
||||
- macpackage: salt-minion
|
||||
{%- elif grains.os == 'MacOS' %}
|
||||
- cmd: download-salt-minion
|
||||
{%- else %}
|
||||
- pkg: salt-minion
|
||||
{%- endif %}
|
||||
@ -113,8 +125,10 @@ restart-salt-minion:
|
||||
- pkg: at
|
||||
- onchanges:
|
||||
{%- if salt_settings.install_packages %}
|
||||
{%- if grains.os == 'MacOS' %}
|
||||
{%- if grains.os == 'MacOS' and salt_settings.salt_minion_pkg_source %}
|
||||
- macpackage: salt-minion
|
||||
{%- elif grains.os == 'MacOS' %}
|
||||
- cmd: download-salt-minion
|
||||
{%- else %}
|
||||
- pkg: salt-minion
|
||||
{%- endif %}
|
||||
@ -146,8 +160,7 @@ remove-old-minion-conf-file:
|
||||
|
||||
{% if grains.os == 'MacOS' %}
|
||||
remove-macpackage-salt:
|
||||
cmd.run:
|
||||
- name: 'rm -f /tmp/salt.pkg'
|
||||
- onchanges:
|
||||
- macpackage: salt-minion
|
||||
file.absent:
|
||||
- name: /tmp/salt.pkg
|
||||
- force: True
|
||||
{% endif %}
|
||||
|
@ -14,6 +14,12 @@
|
||||
{% set osmajorrelease = salt['grains.get']('osmajorrelease', osrelease)|string %}
|
||||
{% set oscodename = salt['grains.get']('oscodename') %}
|
||||
|
||||
#from template-formula
|
||||
{%- if grains.os == 'MacOS' %}
|
||||
{%- set macos_rootuser = salt['cmd.run']("stat -f '%Su' /dev/console") %}
|
||||
{%- set macos_rootgroup = salt['cmd.run']("stat -f '%Sg' /dev/console") %}
|
||||
{%- endif %}
|
||||
|
||||
Debian:
|
||||
pkgrepo: 'deb http://repo.saltstack.com/{{ py_ver_repr }}/{{ osfamily_lower }}/{{ osmajorrelease }}/amd64/{{ salt_release }} {{ oscodename }} main'
|
||||
key_url: 'https://repo.saltstack.com/{{ py_ver_repr }}/{{ osfamily_lower }}/{{ osmajorrelease }}/amd64/{{ salt_release }}/SALTSTACK-GPG-KEY.pub'
|
||||
@ -122,8 +128,11 @@ Windows:
|
||||
minion_service: salt-minion
|
||||
|
||||
MacOS:
|
||||
salt_minion: com.saltstack.salt
|
||||
salt_minion: salt
|
||||
salt_minion_pkg_source: ''
|
||||
salt_minion_pkg_hash: ''
|
||||
config_path: /private/etc/salt
|
||||
minion_service: com.saltstack.salt.minion
|
||||
## from template-formula
|
||||
rootuser: {{ macos_rootuser | d('') }}
|
||||
rootgroup: {{ macos_rootgroup | d('') }}
|
||||
|
Loading…
Reference in New Issue
Block a user