simplified salt formula
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{% from "firewall/map.jinja" import firewall %}
|
{% from "firewall/map.jinja" import firewall with context %}
|
||||||
|
|
||||||
iptables:
|
iptables:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
|
|||||||
33
salt/deb_install/init.sls
Normal file
33
salt/deb_install/init.sls
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{% from "salt/map.jinja" import salt_daemons with context %}
|
||||||
|
{% from "salt/deb_install/map.jinja" import osrelease, oscodename with context %}
|
||||||
|
|
||||||
|
/etc/apt/keyrings/salt-archive-keyring-2023.gpg:
|
||||||
|
file.managed:
|
||||||
|
- source: https://repo.saltproject.io/salt/py3/{{ grains['os'].lower() }}/{{ osrelease }}/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
|
||||||
|
- source_hash: c6f6cbcd96fdb130b1dde8dcfc05d46a3a3f322ff0514f98e2e6473896243472
|
||||||
|
|
||||||
|
/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/{{ grains['os'].lower() }}/{{ osrelease }}/amd64/minor/{{ salt.pillar.get("salt:version") }} {{ oscodename }} 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 %}
|
||||||
7
salt/deb_install/map.jinja
Normal file
7
salt/deb_install/map.jinja
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{% if grains['os'] == 'Debian' and grains['osrelease']|int > 11 %}
|
||||||
|
{% set osrelease = 11 %}
|
||||||
|
{% set oscodename = 'bullseye' %}
|
||||||
|
{% else %}
|
||||||
|
{% set osrelease = grains['osrelease'] %}
|
||||||
|
{% set oscodename = grains['oscodename'] %}
|
||||||
|
{% endif %}
|
||||||
161
salt/init.sls
161
salt/init.sls
@@ -1,162 +1,14 @@
|
|||||||
{% if salt.pillar.get('salt:master', false) %}
|
{% from "salt/map.jinja" import salt_daemons with context %}
|
||||||
{% set salt_daemons = ['master', 'minion'] %}
|
|
||||||
{% else %}
|
|
||||||
{% set salt_daemons = ['minion'] %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
include:
|
||||||
{% if grains['osarch'].lower().startswith('arm') %}
|
{% if grains['osarch'].lower().startswith('arm') %}
|
||||||
|
- salt.pypi_install
|
||||||
'make salt venv':
|
{% elif grains['os_family'] == 'Debian' %}
|
||||||
cmd.run:
|
- salt.deb_install
|
||||||
- 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', 'salt-run', 'salt-key') %}
|
|
||||||
/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'] == 'Debian' %}
|
|
||||||
|
|
||||||
/etc/apt/keyrings/salt-archive-keyring-2023.gpg:
|
|
||||||
file.managed:
|
|
||||||
- source: https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
|
|
||||||
- source_hash: c6f6cbcd96fdb130b1dde8dcfc05d46a3a3f322ff0514f98e2e6473896243472
|
|
||||||
|
|
||||||
{% if grains['osrelease']|int > 11 %}
|
|
||||||
{% set osrelease = 11 %}
|
|
||||||
{% set oscodename = 'bullseye' %}
|
|
||||||
{% else %}
|
|
||||||
{% set osrelease = grains['osrelease'] %}
|
|
||||||
{% set oscodename = grains['oscodename'] %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
/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/debian/{{ osrelease }}/amd64/minor/{{ salt.pillar.get("salt:version") }} {{ oscodename }} main"
|
|
||||||
|
|
||||||
{% 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 %}
|
|
||||||
|
|
||||||
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' %}
|
{% elif grains['os_family'] == 'RedHat' %}
|
||||||
|
- salt.rhel_install
|
||||||
/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 %}
|
{% else %}
|
||||||
|
|
||||||
{{ raise("Unsupported grains.os") }}
|
{{ raise("Unsupported grains.os") }}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for daemon in salt_daemons %}
|
{% for daemon in salt_daemons %}
|
||||||
@@ -168,4 +20,3 @@ salt:
|
|||||||
- group: root
|
- group: root
|
||||||
- mode: 644
|
- mode: 644
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|||||||
5
salt/map.jinja
Normal file
5
salt/map.jinja
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{% if salt.pillar.get('salt:master', false) %}
|
||||||
|
{% set salt_daemons = ['master', 'minion'] %}
|
||||||
|
{% else %}
|
||||||
|
{% set salt_daemons = ['minion'] %}
|
||||||
|
{% endif %}
|
||||||
49
salt/pypi_install.sls
Normal file
49
salt/pypi_install.sls
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{% from "salt/map.jinja" import salt_daemons with context %}
|
||||||
|
|
||||||
|
'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', 'salt-run', 'salt-key') %}
|
||||||
|
/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 %}
|
||||||
42
salt/rhel_install.sls
Normal file
42
salt/rhel_install.sls
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{% from "salt/map.jinja" import salt_daemons with context %}
|
||||||
|
|
||||||
|
{% if grains['os'] != 'CentOS' %}
|
||||||
|
{{ raise("Unsupported distro") }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
/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
|
||||||
|
|
||||||
|
{% for daemon in salt_daemons %}
|
||||||
|
salt-{{ daemon }}:
|
||||||
|
pkg.installed:
|
||||||
|
- version: '{{ salt.pillar.get("salt:version") }}-*'
|
||||||
|
- require:
|
||||||
|
- pkg: salt
|
||||||
|
service.running:
|
||||||
|
- enable: true
|
||||||
|
- require:
|
||||||
|
- pkg: salt-{{ daemon }}
|
||||||
|
- listen:
|
||||||
|
- file: /etc/salt/{{ daemon }}
|
||||||
|
{% endfor %}
|
||||||
Reference in New Issue
Block a user