{% macro salt_daemon(daemon) %} salt-{{ daemon }}: service.running: - enable: true - listen: - file: /etc/salt/{{ daemon }} - watch: - cmd: update salt - require: - file: /lib/systemd/system/salt-{{ daemon }}.service - module: systemd reload for salt /etc/salt/{{ daemon }}: file.managed: - source: salt://{{ slspath }}/files/{{ daemon }}.jinja - template: jinja - user: root - group: root - mode: 640 /lib/systemd/system/salt-{{ daemon }}.service: file.managed: - source: salt://{{ slspath }}/files/salt-{{ daemon }}.service - user: root - group: root - mode: 644 {% endmacro %} /etc/logrotate.d/salt: file.managed: - source: salt://{{ slspath }}/files/logrotate - user: root - group: root - mode: 644 {{ salt_daemon("minion" ) }} {% if salt.pillar.get('salt:master', false) %} {{ salt_daemon("master" ) }} {% endif %} systemd reload for salt: module.run: - name: service.systemctl_reload - onchanges: - file: /lib/systemd/system/salt-minion.service {% if salt.pillar.get('salt:master', false) %} - file: /lib/systemd/system/salt-master.service {% endif %} saltutil.sync_all: saltutil.sync_all: - refresh: True salt dependencies: pkg.installed: - pkgs: - usbutils # for the lsusb grain - dmidecode {% 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/pip update salt: cmd.script: - source: salt://{{ slspath }}/files/update_salt.sh - template: jinja - unless: /usr/bin/salt-pip freeze | grep -q 'salt=={{ salt.pillar.get("salt:version") }}' - require: - file: /usr/bin/salt-pip