{% 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 %}