mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
Add tests/lint/repository/test_task_file_numbering.py: numbered task files use exactly two leading digits, a numbered *_core.yml must be 00_core.yml, per directory the numbers are unique/consecutive and start at 01 (00 with a core file), numbered includes appear in ascending order, and shared helpers live in tasks/utils/ instead of the numbered chain. Apply it across every role: rename NN_core.yml to 00_core.yml with a consecutive down-shift of the siblings, move letter-suffix children into a subdirectory named after their parent task, relocate helpers included from more than one place into tasks/utils/, and update every reference (include_tasks, path_absolute, .ansible-lint-ignore, requirement docs). Legacy narration comments in the touched files are deleted; the upstream xwiki.properties reference block opts out via nocheck. The unused MAILU_IP6_PUBLIC var (only ever named in now-removed comments) is dropped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
106 lines
3.4 KiB
YAML
106 lines
3.4 KiB
YAML
---
|
|
# Remove/stop/disable systemd units that belong to this SOFTWARE_NAME,
|
|
# but are not for the current version.
|
|
|
|
- name: "🤔 sys-service | Determine current software/version (lowercase)"
|
|
ansible.builtin.set_fact:
|
|
sys_service_sw_lc: "{{ SOFTWARE_NAME | string | trim | lower }}"
|
|
sys_service_ver_lc: "{{ lookup('version') | string | trim | lower }}"
|
|
|
|
- name: "📊 sys-service | Collect {{ SOFTWARE_NAME }} timers (all versions)"
|
|
become: true
|
|
ansible.builtin.command:
|
|
argv:
|
|
- systemctl
|
|
- list-unit-files
|
|
- "*.{{ sys_service_sw_lc }}*.timer"
|
|
- --no-legend
|
|
- --no-pager
|
|
register: sys_service_all_timers
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: "📊 sys-service | Collect {{ SOFTWARE_NAME }} services (all versions)"
|
|
become: true
|
|
ansible.builtin.command:
|
|
argv:
|
|
- systemctl
|
|
- list-unit-files
|
|
- "*.{{ sys_service_sw_lc }}*.service"
|
|
- --no-legend
|
|
- --no-pager
|
|
register: sys_service_all_services
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: "🔨 sys-service | Build old-version unit lists (exclude current version)"
|
|
ansible.builtin.set_fact:
|
|
sys_service_old_units_timers: >-
|
|
{{
|
|
(sys_service_all_timers.stdout_lines | default([]))
|
|
| map('split', ' ')
|
|
| map('first')
|
|
| select('search', '\\.' ~ sys_service_sw_lc ~ '(?:@)?\\.timer$')
|
|
| reject('search', '\\.' ~ sys_service_ver_lc ~ '\\.' ~ sys_service_sw_lc)
|
|
| list
|
|
}}
|
|
sys_service_old_units_services: >-
|
|
{{
|
|
(sys_service_all_services.stdout_lines | default([]))
|
|
| map('split', ' ')
|
|
| map('first')
|
|
| select('search', '\\.' ~ sys_service_sw_lc ~ '(?:@)?\\.service$')
|
|
| reject('search', '\\.' ~ sys_service_ver_lc ~ '\\.' ~ sys_service_sw_lc)
|
|
| list
|
|
}}
|
|
|
|
- name: "⏹️ sys-service | Stop old-version services (best-effort)"
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: "{{ item }}"
|
|
state: stopped
|
|
loop: "{{ sys_service_old_units_services }}"
|
|
when: sys_service_old_units_services | length > 0
|
|
failed_when: false
|
|
|
|
- name: "⏹️ sys-service | Stop old-version timers (best-effort)"
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: "{{ item }}"
|
|
state: stopped
|
|
loop: "{{ sys_service_old_units_timers }}"
|
|
when: sys_service_old_units_timers | length > 0
|
|
failed_when: false
|
|
|
|
- name: "🔴 sys-service | Disable old-version services (best-effort)"
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: "{{ item }}"
|
|
enabled: false
|
|
loop: "{{ sys_service_old_units_services }}"
|
|
when: sys_service_old_units_services | length > 0
|
|
failed_when: false
|
|
|
|
- name: "🔴 sys-service | Disable old-version timers (best-effort)"
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: "{{ item }}"
|
|
enabled: false
|
|
loop: "{{ sys_service_old_units_timers }}"
|
|
when: sys_service_old_units_timers | length > 0
|
|
failed_when: false
|
|
|
|
- name: "🗑️ sys-service | Delete old-version unit files"
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ [ DIR_SYSTEM_SERVICE, item ] | path_join }}"
|
|
state: absent
|
|
loop: "{{ (sys_service_old_units_services + sys_service_old_units_timers) | unique }}"
|
|
when: (sys_service_old_units_services | length > 0) or (sys_service_old_units_timers | length > 0)
|
|
|
|
- name: "🔄 sys-service | systemd daemon-reload after pruning"
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
daemon_reload: true
|
|
when: (sys_service_old_units_services | length > 0) or (sys_service_old_units_timers | length > 0)
|