61 lines
2.0 KiB
YAML
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
|