Sync with develop #4
@ -5,3 +5,4 @@ skip_list:
|
|||||||
- no-changed-when
|
- no-changed-when
|
||||||
- run-once[play]
|
- run-once[play]
|
||||||
- name[template]
|
- name[template]
|
||||||
|
- jinja[spacing]
|
||||||
|
@ -11,42 +11,13 @@
|
|||||||
tasks:
|
tasks:
|
||||||
- name: Perform service and filesystem checks prior to Bigboot execution
|
- name: Perform service and filesystem checks prior to Bigboot execution
|
||||||
when:
|
when:
|
||||||
- (bigboot_data[inventory_hostname]['bigboot_execute_shrink_lv'] | bool
|
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool
|
||||||
or bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool)
|
|
||||||
block:
|
block:
|
||||||
- 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
|
||||||
|
|
||||||
- name: Services disabled notice
|
- name: Perform filesystem check prior to Bigboot execution
|
||||||
ansible.builtin.debug:
|
ansible.builtin.import_tasks: tasks/grub_filesystem_check.yml
|
||||||
msg: >-
|
|
||||||
The following services were disabled, and will be re-enabled post
|
|
||||||
Bigboot execution:
|
|
||||||
|
|
||||||
{{ bigboot_systemd_disabled_services | flatten }}
|
|
||||||
when:
|
|
||||||
- bigboot_systemd_disabled_services is defined
|
|
||||||
- bigboot_systemd_disabled_services | length > 0
|
|
||||||
|
|
||||||
- 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: Extend the timeout values for physical hosts
|
- name: Extend the timeout values for physical hosts
|
||||||
@ -74,16 +45,16 @@
|
|||||||
when:
|
when:
|
||||||
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool
|
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool
|
||||||
|
|
||||||
- name: Get the list of services on the host
|
- name: Ensure service facts are available
|
||||||
ansible.builtin.service_facts:
|
ansible.builtin.service_facts:
|
||||||
|
|
||||||
- name: Re-enabling Docker service
|
- name: Restore Docker service to its pre-Bigboot state
|
||||||
ansible.builtin.service:
|
ansible.builtin.service:
|
||||||
name: docker.service
|
name: "{{ bigboot_docker_service }}"
|
||||||
state: started
|
state: "{{ bigboot_data[inventory_hostname]['bigboot_docker_running'] }}"
|
||||||
enabled: true
|
enabled: "{{ bigboot_data[inventory_hostname]['bigboot_docker_enabled'] }}"
|
||||||
when:
|
when:
|
||||||
- "'docker.service' in ansible_facts['services']"
|
- 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:
|
||||||
|
@ -1,22 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Capture boot and logical volume information
|
|
||||||
hosts: all
|
|
||||||
become: true
|
|
||||||
gather_facts: true
|
|
||||||
strategy: free
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: Debug bigboot_execute_shrink_lv
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "bigboot_data[inventory_hostname]['bigboot_execute_shrink_lv'] -> {{ bigboot_data[inventory_hostname]['bigboot_execute_shrink_lv'] }}"
|
|
||||||
|
|
||||||
- name: Debug bigboot_execute_bigboot
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] -> {{ bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] }}"
|
|
||||||
|
|
||||||
- name: Perform a ReaR backup before the /boot expansion
|
- name: Perform a ReaR backup before the /boot expansion
|
||||||
ansible.builtin.import_playbook: rhc.rear.rear_backup
|
ansible.builtin.import_playbook: rhc.rear.rear_backup
|
||||||
when:
|
when:
|
||||||
- (bigboot_data[inventory_hostname]['bigboot_execute_shrink_lv'] | bool
|
- bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | default(false) | bool
|
||||||
or bigboot_data[inventory_hostname]['bigboot_execute_bigboot'] | bool)
|
- not rear_backup_skip | default(false) | bool
|
||||||
- not bigboot_rear_backup_skip | default(false) | bool
|
|
||||||
|
19
bigboot_rear_nfs_export.yml
Normal file
19
bigboot_rear_nfs_export.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
- name: Perform logical volume and boot parition resizing as needed
|
||||||
|
hosts: rear_server
|
||||||
|
become: true
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- bigboot_vars.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Create IP list and add to NFS exports
|
||||||
|
ansible.builtin.include_tasks: tasks/rear_nfs_exports.yml
|
||||||
|
loop: "{{ bigboot_data | dict2items }}"
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item['key'] }}"
|
||||||
|
when:
|
||||||
|
- item['value']['bigboot_execute_bigboot'] | default(false) | bool
|
||||||
|
- not rear_backup_skip | default(false) | bool
|
||||||
|
|
@ -12,29 +12,18 @@
|
|||||||
- 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: Get the list of services on the host
|
- name: Stop and disable the Docker service if present and running
|
||||||
ansible.builtin.service_facts:
|
ansible.builtin.import_tasks: tasks/disable_docker_service.yml
|
||||||
|
|
||||||
- name: Disable Docker service due to incompatibility
|
- name: Set boot device details
|
||||||
ansible.builtin.service:
|
|
||||||
name: docker.service
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
when:
|
|
||||||
- "'docker.service' in ansible_facts['services']"
|
|
||||||
|
|
||||||
- name: Capture boot device details
|
|
||||||
ansible.builtin.import_tasks: tasks/capture_boot_device_details.yml
|
ansible.builtin.import_tasks: tasks/capture_boot_device_details.yml
|
||||||
|
|
||||||
- name: Capture logical volume information
|
- name: Set logical volume information
|
||||||
ansible.builtin.import_tasks: tasks/capture_lv_device_details.yml
|
ansible.builtin.import_tasks: tasks/capture_lv_device_details.yml
|
||||||
|
|
||||||
- name: Set ReaR backup flag
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
bigboot_rear_backup_skip:
|
|
||||||
|
|
||||||
- name: Set environment for subsequent workflow nodes
|
- name: Set environment for subsequent workflow nodes
|
||||||
ansible.builtin.set_stats:
|
ansible.builtin.set_stats:
|
||||||
|
aggregate: true
|
||||||
data:
|
data:
|
||||||
bigboot_data: "{{ bigboot_data | default({}) |
|
bigboot_data: "{{ bigboot_data | default({}) |
|
||||||
combine({inventory_hostname:
|
combine({inventory_hostname:
|
||||||
@ -43,15 +32,12 @@
|
|||||||
'bigboot_execute_shrink_lv': bigboot_execute_shrink_lv,
|
'bigboot_execute_shrink_lv': bigboot_execute_shrink_lv,
|
||||||
'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,
|
||||||
|
'server_hostname': ansible_hostname
|
||||||
}
|
}
|
||||||
}) }}"
|
}) }}"
|
||||||
rear_backup_skip: "{{ bigboot_rear_backup_skip | default(false) }}"
|
|
||||||
|
|
||||||
- name: Perform a ReaR backup if any disk modifications are to be made
|
|
||||||
ansible.builtin.import_playbook: rhc.rear.rear_backup
|
|
||||||
when:
|
|
||||||
- bigboot_execute_bigboot | bool or bigboot_execute_bigboot | bool
|
|
||||||
- not bigboot_rear_backup_skip | default(false) | bool
|
|
||||||
|
|
||||||
...
|
...
|
||||||
|
@ -28,4 +28,13 @@
|
|||||||
label: "{{ item['item'] }}"
|
label: "{{ item['item'] }}"
|
||||||
when:
|
when:
|
||||||
- item['item'] not in bigboot_protected_services
|
- item['item'] not in bigboot_protected_services
|
||||||
- item['stdout'] | regex_replace('^.*=(.*$)', '\\1') | community.general.to_minutes > bigboot_service_max_timeout
|
- 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
|
||||||
|
@ -29,4 +29,16 @@
|
|||||||
path: "/boot/initramfs-{{ initramfs_kernel_version }}.img.{{ initramfs_backup_extension }}"
|
path: "/boot/initramfs-{{ initramfs_kernel_version }}.img.{{ initramfs_backup_extension }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
|
- name: Check if disable services log exists
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ bigboot_disabled_services_log }}"
|
||||||
|
register: bigboot_disabled_services_log_stat
|
||||||
|
|
||||||
|
- name: Remove disabled services log if present
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ bigboot_disabled_services_log }}"
|
||||||
|
state: absent
|
||||||
|
when:
|
||||||
|
- bigboot_disabled_services_log_stat['stat']['exists'] | bool
|
||||||
|
|
||||||
...
|
...
|
||||||
|
25
tasks/disable_docker_service.yml
Normal file
25
tasks/disable_docker_service.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
- 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: Ensure Docker service is stopped and disabled
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: "{{ bigboot_docker_service }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
@ -9,3 +9,13 @@
|
|||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
bigboot_systemd_disabled_services:
|
bigboot_systemd_disabled_services:
|
||||||
"{{ bigboot_systemd_disabled_services | default([]) + [item['item']] }}"
|
"{{ bigboot_systemd_disabled_services | default([]) + [item['item']] }}"
|
||||||
|
|
||||||
|
- name: Log disabled service to log file
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: "{{ bigboot_disabled_services_log }}"
|
||||||
|
line: "{{ item['item'] }}"
|
||||||
|
create: true
|
||||||
|
state: present
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0600"
|
||||||
|
30
tasks/grub_filesystem_check.yml
Normal file
30
tasks/grub_filesystem_check.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
- name: Enable Grub filesystem check
|
||||||
|
ansible.builtin.import_role:
|
||||||
|
name: autofsck
|
||||||
|
tasks_from: main.yml
|
||||||
|
|
||||||
|
- name: Flush handlers to add Grub parameters for fsck
|
||||||
|
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: Reboot to run filesystem checks
|
||||||
|
ansible.builtin.command: /sbin/shutdown -r +1
|
||||||
|
|
||||||
|
- name: Wait for the reboot to complete
|
||||||
|
ansible.builtin.wait_for_connection:
|
||||||
|
connect_timeout: 20
|
||||||
|
sleep: 10
|
||||||
|
delay: "{{ bigboot_post_reboot_delay | default('70') }}"
|
||||||
|
timeout: "{{ bigboot_reboot_timeout | default('1800') }}"
|
||||||
|
|
||||||
|
- name: Disable Grub filesystem check
|
||||||
|
ansible.builtin.import_role:
|
||||||
|
name: autofsck
|
||||||
|
tasks_from: cleanup.yml
|
||||||
|
|
||||||
|
- name: Flush handlers to remove Grub parameters for fsck
|
||||||
|
ansible.builtin.meta: flush_handlers
|
9
tasks/rear_nfs_exports.yml
Normal file
9
tasks/rear_nfs_exports.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- name: Create list of IP addresses and hostnames
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
client_ips: "{{ item['value']['ip_addresses'] | list | flatten }}"
|
||||||
|
namehost: "{{ item['value']['server_hostname'] }}"
|
||||||
|
|
||||||
|
- name: Include NFS export role
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: rhc.rear.say_hi
|
@ -8,6 +8,10 @@ bigboot_reboot_timeout: 1800
|
|||||||
|
|
||||||
bigboot_skip_rear_backup: false
|
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:
|
# Max value in minutes for the timeout threshold:
|
||||||
bigboot_service_max_timeout: 5
|
bigboot_service_max_timeout: 5
|
||||||
|
|
||||||
@ -20,3 +24,6 @@ bigboot_protected_services:
|
|||||||
- rhnsd.service
|
- rhnsd.service
|
||||||
- rhnsd
|
- rhnsd
|
||||||
- boksm.service
|
- boksm.service
|
||||||
|
|
||||||
|
# Filename of disabled services log:
|
||||||
|
bigboot_disabled_services_log: /root/bigboot_disabled_services.log
|
||||||
|
Loading…
x
Reference in New Issue
Block a user