41 lines
1.4 KiB
YAML
41 lines
1.4 KiB
YAML
---
|
|
- name: Get the list of services on the host
|
|
ansible.builtin.service_facts:
|
|
|
|
- name: Capture a list of running services
|
|
ansible.builtin.set_fact:
|
|
bigboot_systemd_running_services:
|
|
"{{ bigboot_systemd_running_services | default([]) + [item['key']] }}"
|
|
loop: "{{ ansible_facts['services'] | dict2items }}"
|
|
loop_control:
|
|
label: "{{ item['key'] }}"
|
|
when:
|
|
- "'running' in item['value']['state']"
|
|
|
|
- name: Get the stop timeout value for running services
|
|
ansible.builtin.shell:
|
|
cmd: |
|
|
set -o pipefail
|
|
systemctl show {{ item }} | grep TimeoutStopUSec
|
|
changed_when: false
|
|
register: bigboot_systemd_service_timeout
|
|
loop: "{{ bigboot_systemd_running_services }}"
|
|
|
|
- name: Disabling services exceeding the timeout threshold
|
|
ansible.builtin.include_tasks: tasks/disable_systemd_services.yml
|
|
loop: "{{ bigboot_systemd_service_timeout['results'] }}"
|
|
loop_control:
|
|
label: "{{ item['item'] }}"
|
|
when:
|
|
- item['item'] not in bigboot_protected_services
|
|
- item['stdout'] | regex_replace('^.*=(.*$)', '\\1') | community.general.to_minutes >= bigboot_service_max_timeout | int
|
|
|
|
- name: Services disabled notice
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
The following services were disabled, and will be re-enabled post
|
|
Bigboot execution: {{ bigboot_systemd_disabled_services | join(',') }}
|
|
when:
|
|
- bigboot_systemd_disabled_services is defined
|
|
- bigboot_systemd_disabled_services | length > 0
|