--- - name: "🚀 DEPLOY | Collect {{ SOFTWARE_DOMAIN }} timers" become: true ansible.builtin.command: argv: - systemctl - list-unit-files - "*.{{ SOFTWARE_DOMAIN }}.timer" - --no-legend - --no-pager register: deploy_timer_units changed_when: false failed_when: false - name: "🚀 DEPLOY | Collect {{ SOFTWARE_DOMAIN }} services" become: true ansible.builtin.command: argv: - systemctl - list-unit-files - "*.{{ SOFTWARE_DOMAIN }}.service" - --no-legend - --no-pager register: deploy_service_units changed_when: false failed_when: false - name: "🚀 DEPLOY | Build unit lists" ansible.builtin.set_fact: deploy_timers: >- {{ deploy_timer_units.stdout_lines | default([]) | map('split', ' ') | map('first') | list }} deploy_services: >- {{ deploy_service_units.stdout_lines | default([]) | map('split', ' ') | map('first') | list }} - name: "🚀 DEPLOY | Stop all {{ SOFTWARE_DOMAIN }} services" become: true ansible.builtin.systemd: name: "{{ item }}" state: stopped register: deploy_stop_service retries: 5 delay: 3 until: deploy_stop_service is success loop: "{{ deploy_services }}" when: deploy_services | length > 0 - name: "🚀 DEPLOY | Stop all {{ SOFTWARE_DOMAIN }} timers (best-effort)" become: true ansible.builtin.systemd: name: "{{ item }}" state: stopped loop: "{{ deploy_timers }}" when: deploy_timers | length > 0 - name: "🚀 DEPLOY | Disable all {{ SOFTWARE_DOMAIN }} timers (keep unit files)" become: true ansible.builtin.systemd: name: "{{ item }}" enabled: false state: stopped loop: "{{ deploy_timers }}" when: deploy_timers | length > 0