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: when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool - bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool
block: block:
- name: Enable Grub filesystem check - name: Perform filesystem check prior to Bigboot execution
ansible.builtin.import_role: ansible.builtin.import_tasks: tasks/grub_filesystem_check.yml
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: Check for and disable services exceeding the timeout threshold - name: Check for and disable services exceeding the timeout threshold
ansible.builtin.import_tasks: tasks/check_systemd_services.yml ansible.builtin.import_tasks: tasks/check_systemd_services.yml
@ -45,9 +28,6 @@
- bigboot_systemd_disabled_services is defined - bigboot_systemd_disabled_services is defined
- bigboot_systemd_disabled_services | length > 0 - 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 - name: Extend the timeout values for physical hosts
ansible.builtin.set_fact: ansible.builtin.set_fact:
@ -74,6 +54,14 @@
when: when:
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool - 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 - name: Re-enabling services previously disabled
ansible.builtin.service: ansible.builtin.service:
name: "{{ item }}" name: "{{ item }}"

View File

@ -12,7 +12,7 @@
- name: Cleanup from any previous executions - name: Cleanup from any previous executions
ansible.builtin.import_tasks: tasks/cleanup.yml 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 ansible.builtin.import_tasks: tasks/stop_docker_service.yml
- name: Set boot device details - name: Set boot device details
@ -33,6 +33,8 @@
'bigboot_adjacent_lvm_device': bigboot_adjacent_lvm_device, 'bigboot_adjacent_lvm_device': bigboot_adjacent_lvm_device,
'bigboot_lv_shrink_size': bigboot_lv_shrink_size | int, 'bigboot_lv_shrink_size': bigboot_lv_shrink_size | int,
'bigboot_size': bigboot_size, 'bigboot_size': bigboot_size,
'bigboot_docker_running': bigboot_docker_running,
'bigboot_docker_enabled': bigboot_docker_enabled,
'ip_addresses': ansible_all_ipv4_addresses, 'ip_addresses': ansible_all_ipv4_addresses,
'server_hostname': ansible_hostname '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 - name: Ensure service facts are available
ansible.builtin.service_facts: 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 - name: Stop Docker service due to incompatibility
ansible.builtin.service: ansible.builtin.service:
name: "{{ bigboot_docker_service }}" name: "{{ bigboot_docker_service }}"
state: stopped state: stopped
enabled: false
when: when:
- ansible_facts['services'][bigboot_docker_service] is defined - ansible_facts['services'][bigboot_docker_service] is defined
- ansible_facts['services'][bigboot_docker_service]['state'] == "running" - ansible_facts['services'][bigboot_docker_service]['state'] == "running"

View File

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