Files
salt-states/salt/init.sls
2023-11-25 02:17:11 -05:00

131 lines
3.8 KiB
Plaintext

{% if salt.pillar.get('salt:master', false) %}
{% set salt_daemons = ['master', 'minion'] %}
{% else %}
{% set salt_daemons = ['minion'] %}
{% endif %}
{% if grains['osarch'].lower().startswith('arm') %}
'make salt venv':
cmd.run:
- name: /usr/bin/python3 -m venv /opt/saltstack/salt
- creates: /opt/saltstack/salt
pip install salt:
cmd.run:
- name: /opt/saltstack/salt/bin/pip3 install 'salt=={{ salt.pillar.get("salt:version") }}'
- unless: /opt/saltstack/salt/bin/pip3 freeze | grep -q 'salt=={{ salt.pillar.get("salt:version") }}'
- require:
- cmd: 'make salt venv'
{% for link in ('salt', 'salt-call', 'salt-minion', 'salt-proxy') %}
/usr/bin/{{ link }}:
file.symlink:
- target: /opt/saltstack/salt/bin/{{ link }}
{% endfor %}
/usr/bin/salt-pip:
file.symlink:
- target: /opt/saltstack/salt/bin/pip3
systemd reload for salt:
module.run:
- name: service.systemctl_reload
- onchanges:
{% for daemon in salt_daemons %}
- file: /lib/systemd/system/salt-{{ daemon }}.service
{% endfor %}
{% for daemon in salt_daemons %}
/lib/systemd/system/salt-{{ daemon }}.service:
file.managed:
- source: salt://salt/files/salt-{{ daemon }}.service
- user: root
- group: root
- mode: 644
salt-{{ daemon }}:
service.running:
- enable: true
- require:
- file: /lib/systemd/system/salt-{{ daemon }}.service
- module: systemd reload for salt
- watch:
- cmd: pip install salt
- listen:
- file: /etc/salt/{{ daemon }}
{% endfor %}
{% elif grains['os'] == 'Ubuntu' %}
/etc/apt/keyrings/salt-archive-keyring-2023.gpg:
file.managed:
- source: https://repo.saltproject.io/salt/py3/ubuntu/{{ grains['lsb_distrib_release'] }}/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
- source_hash: c6f6cbcd96fdb130b1dde8dcfc05d46a3a3f322ff0514f98e2e6473896243472 # sha256
/etc/apt/sources.list.d/salt.list:
file.managed:
- contents: "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/ubuntu/{{ grains['lsb_distrib_release'] }}/amd64/minor/{{ salt.pillar.get("salt:version") }} {{ grains['lsb_distrib_codename'] }} main"
salt-common:
pkg.installed:
- version: '{{ salt.pillar.get("salt:version") }}'
- refresh: true
- require:
- file: /etc/apt/keyrings/salt-archive-keyring-2023.gpg
- file: /etc/apt/sources.list.d/salt.list
{% for daemon in salt_daemons %}
salt-{{ daemon }}:
pkg.installed:
- version: '{{ salt.pillar.get("salt:version") }}'
- require:
- pkg: salt-common
service.running:
- enable: true
- require:
- pkg: salt-{{ daemon }}
- listen:
- file: /etc/salt/{{ daemon }}
{% endfor %}
{% elif grains['os_family'] == 'RedHat' %}
/etc/pki/rpm-gpg/SALT-PROJECT-GPG-PUBKEY-2023:
file.managed:
- source: salt://salt/files/SALT-PROJECT-GPG-PUBKEY-2023.pub
salt:
pkgrepo.managed:
- baseurl: "https://repo.saltproject.io/salt/py3/redhat/{{ grains['osmajorrelease'] }}/x86_64/minor/{{ salt.pillar.get("salt:version") }}"
- humanname: Salt repo for RHEL/CentOS {{ grains['osmajorrelease'] }} PY3
- gpgkey: file:///etc/pki/rpm-gpg/SALT-PROJECT-GPG-PUBKEY-2023
- skip_if_unavailable: true
- failovermethod: priority
- priority: 10
- enabled: 1
- enabled_metadata: 1
- gpgcheck: 1
- gpgkey: file:///etc/pki/rpm-gpg/SALT-PROJECT-GPG-PUBKEY-2023
- require:
- file: /etc/pki/rpm-gpg/SALT-PROJECT-GPG-PUBKEY-2023
pkg.installed:
- version: '{{ salt.pillar.get("salt:version") }}-*'
- refresh: true
- require:
- pkgrepo: salt
{% else %}
{{ raise("Unsupported grains.os") }}
{% endif %}
{% for daemon in salt_daemons %}
/etc/salt/{{ daemon }}:
file.managed:
- source: salt://salt/files/{{ daemon }}.jinja
- template: jinja
- user: root
- group: root
- mode: 644
{% endfor %}