snel.kubernetes-cluster/shared/tasks/disable_service.yml

61 lines
2.0 KiB
YAML

---
# Requires var: __disable_service_name => name with '.service' or '.timer'
- name: disable_service | Check var __disable_service_name
ansible.builtin.assert:
that: __disable_service_name is defined and __disable_service_name != ''
quiet: true
# - name: Update service facts
# ansible.builtin.service_facts:
- name: disable_service | List loaded units
ansible.builtin.command:
cmd: systemctl list-units --state=loaded,masked --plain # noqa command-instead-of-module
register: _list_units
check_mode: false
changed_when: false
- name: disable_service | When service exists
when: _list_units.stdout is regex( '\s' + (__disable_service_name | regex_escape()) + '\s')
block:
- name: Stop and disable {{ __disable_service_name }}
ansible.builtin.systemd:
name: "{{ __disable_service_name }}"
state: stopped
enabled: false
- name: disable_service | List fa-iled services
ansible.builtin.command:
cmd: systemctl list-units --failed --plain # noqa command-instead-of-module
register: _systemctl_list_failed
changed_when: false
- name: disable_service | Reset-fa-iled service {{ __disable_service_name }}
when: _systemctl_list_failed.stdout is regex('\s' + (__disable_service_name) + '\s')
ansible.builtin.command:
cmd: systemctl reset-failed '{{ __disable_service_name }}' # noqa command-instead-of-module
changed_when: true
- name: disable_service | Find target paths
ansible.builtin.find:
paths: /etc/systemd/system
patterns: "*.wants"
file_type: directory
register: _target_wants_paths
- name: disable_service | Find target unit files
ansible.builtin.find:
paths: "{{ _target_wants_paths.files | map(attribute='path') | list }}"
file_type: link
patterns: "{{ __disable_service_name }}"
register: _remove_list
- name: disable_service | Remove target unit files
ansible.builtin.file:
path: "{{ _remove_file }}"
state: absent
loop: "{{ _remove_list.files | map(attribute='path') | list }}"
loop_control:
loop_var: _remove_file