{% set pmg_services = salt['pillar.get']('pmg:pmg_services', []) %} {% set pmg_update_dist_upgrade = salt['pillar.get']('pmg:update_dist_upgrade', True) %} {% set pmg_update_auto_reboot = salt['pillar.get']('pmg:update_auto_reboot', False) %} {% set pmg_update_reboot_delay_minutes = salt['pillar.get']('pmg:update_reboot_delay_minutes', 1) %} pmg-update-precheck-cluster: cmd.run: - name: pmgcm status {% for svc in pmg_services %} pmg-update-precheck-service-{{ svc }}: cmd.run: - name: systemctl is-active --quiet {{ svc }} {% endfor %} pmg-update-packages: pkg.uptodate: - refresh: true - dist_upgrade: {{ pmg_update_dist_upgrade }} pmg-update-postcheck-cluster: cmd.run: - name: pmgcm status - require: - pkg: pmg-update-packages {% for svc in pmg_services %} pmg-update-postcheck-service-{{ svc }}: cmd.run: - name: systemctl is-active --quiet {{ svc }} - require: - pkg: pmg-update-packages {% endfor %} pmg-update-reboot-required-note: test.show_notification: - text: "После обновления требуется reboot: /var/run/reboot-required" - onlyif: test -f /var/run/reboot-required {% if pmg_update_auto_reboot %} pmg-update-schedule-reboot: cmd.run: - name: "shutdown -r +{{ pmg_update_reboot_delay_minutes }} \"Salt pmg.update: reboot required\"" - onlyif: test -f /var/run/reboot-required - require: - cmd: pmg-update-postcheck-cluster {% for svc in pmg_services %} - cmd: pmg-update-postcheck-service-{{ svc }} {% endfor %} {% endif %}