Fix Docker service management; relocate Grub fsck

This commit is contained in:
Chris Hammer 2024-07-31 11:53:25 -04:00
parent 0b11597038
commit e53e97cf9a
5 changed files with 52 additions and 23 deletions

View File

@ -13,25 +13,8 @@
when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool
block:
- name: Enable Grub filesystem check
ansible.builtin.import_role:
name: autofsck
tasks_from: main.yml
- name: Flush handlers
ansible.builtin.meta: flush_handlers
# Make sure to update the reboot code for the WF environment
- name: Reboot to run filesystem checks
ansible.builtin.reboot:
- name: Disable Grub filesystem check
ansible.builtin.import_role:
name: autofsck
tasks_from: cleanup.yml
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Perform filesystem check prior to Bigboot execution
ansible.builtin.import_tasks: tasks/grub_filesystem_check.yml
- name: Check for and disable services exceeding the timeout threshold
ansible.builtin.import_tasks: tasks/check_systemd_services.yml
@ -45,9 +28,6 @@
- bigboot_systemd_disabled_services is defined
- bigboot_systemd_disabled_services | length > 0
- name: Stop Docker service if present and running
ansible.builtin.import_tasks: tasks/stop_docker_service.yml
- name: Extend the timeout values for physical hosts
ansible.builtin.set_fact:
@ -74,6 +54,14 @@
when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool
- name: Restore Docker service to its pre-Bigboot state
ansible.builtin.service:
name: "{{ bigboot_docker_service }}"
state: "{{ bigboot_data[inventory_hostname]['bigboot_docker_running'] }}"
enabled: "{{ bigboot_data[inventory_hostname]['bigboot_docker_enabled'] }}"
when:
- ansible_facts['services'][bigboot_docker_service] is defined
- name: Re-enabling services previously disabled
ansible.builtin.service:
name: "{{ item }}"

View File

@ -12,7 +12,7 @@
- name: Cleanup from any previous executions
ansible.builtin.import_tasks: tasks/cleanup.yml
- name: Stop Docker service if present and running
- name: Stop and disable the Docker service if present and running
ansible.builtin.import_tasks: tasks/stop_docker_service.yml
- name: Set boot device details
@ -33,6 +33,8 @@
'bigboot_adjacent_lvm_device': bigboot_adjacent_lvm_device,
'bigboot_lv_shrink_size': bigboot_lv_shrink_size | int,
'bigboot_size': bigboot_size,
'bigboot_docker_running': bigboot_docker_running,
'bigboot_docker_enabled': bigboot_docker_enabled,
'ip_addresses': ansible_all_ipv4_addresses,
'server_hostname': ansible_hostname
}

View File

@ -0,0 +1,20 @@
---
- name: Enable Grub filesystem check
ansible.builtin.import_role:
name: autofsck
tasks_from: main.yml
- name: Flush handlers
ansible.builtin.meta: flush_handlers
# Make sure to update the reboot code for the WF environment
- name: Reboot to run filesystem checks
ansible.builtin.reboot:
- name: Disable Grub filesystem check
ansible.builtin.import_role:
name: autofsck
tasks_from: cleanup.yml
- name: Flush handlers
ansible.builtin.meta: flush_handlers

View File

@ -2,10 +2,27 @@
- name: Ensure service facts are available
ansible.builtin.service_facts:
- name: Set Docker state
when:
- ansible_facts['services'][bigboot_docker_service] is defined
block:
- name: Set Docker running state
ansible.builtin.set_fact:
bigboot_docker_running: started
when:
- ansible_facts['services'][bigboot_docker_service]['state'] == "running"
- name: Set Docker enabled state
ansible.builtin.set_fact:
bigboot_docker_enabled: true
when:
- ansible_facts['services'][bigboot_docker_service]['status'] == "enabled"
- name: Stop Docker service due to incompatibility
ansible.builtin.service:
name: "{{ bigboot_docker_service }}"
state: stopped
enabled: false
when:
- ansible_facts['services'][bigboot_docker_service] is defined
- ansible_facts['services'][bigboot_docker_service]['state'] == "running"

View File

@ -9,6 +9,8 @@ bigboot_reboot_timeout: 1800
bigboot_skip_rear_backup: false
bigboot_docker_service: docker.service
bigboot_docker_running: stopped
bigboot_docker_enabled: false
# Max value in minutes for the timeout threshold:
bigboot_service_max_timeout: 5