Add hung NFS share management
All checks were successful
Ansible Code Pipeline / Ansible-Development-Pipeline (ansible-dev-fedora) (push) Successful in 8s
All checks were successful
Ansible Code Pipeline / Ansible-Development-Pipeline (ansible-dev-fedora) (push) Successful in 8s
This commit is contained in:
38
tasks/hung_nfs_check.yml
Normal file
38
tasks/hung_nfs_check.yml
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
- name: Check for mounted NFS shares # noqa: command-instead-of-module
|
||||
ansible.builtin.command: mount -t nfs,nfs4
|
||||
register: lazy_reboot_nfs_mounts
|
||||
changed_when: false
|
||||
failed_when: lazy_reboot_nfs_mounts['rc'] not in [0, 32]
|
||||
|
||||
- name: Create a list of NFS mount points
|
||||
ansible.builtin.set_fact:
|
||||
lazy_reboot_nfs_list:
|
||||
"{{ lazy_reboot_nfs_mounts['stdout_lines'] | map('split') | map(attribute=2) | list }}"
|
||||
|
||||
- name: Verify mount status and reboot host
|
||||
block:
|
||||
- name: Verify mount status
|
||||
ansible.builtin.command: "ls {{ item }}"
|
||||
timeout: 5
|
||||
changed_when: false
|
||||
register: r_lazy_reboot_verify_mounts
|
||||
loop: "{{ lazy_reboot_nfs_list }}"
|
||||
loop_control:
|
||||
label: "{{ item }}"
|
||||
|
||||
rescue:
|
||||
- name: Group shares that failed status check
|
||||
ansible.builtin.set_fact:
|
||||
lazy_reboot_failed_shares:
|
||||
"{{ r_lazy_reboot_verify_mounts['results'] | selectattr('failed') | map(attribute='item') | list }}"
|
||||
|
||||
- name: Lazily unmount the failed shares
|
||||
ansible.builtin.command: "umount -f -l {{ item }}"
|
||||
changed_when: false
|
||||
register: r_lazy_unmount
|
||||
async: 30
|
||||
poll: 0
|
||||
loop: "{{ lazy_reboot_failed_shares }}"
|
||||
loop_control:
|
||||
label: "{{ item }}"
|
@ -1,4 +1,7 @@
|
||||
---
|
||||
- name: Check for hung NFS mounts
|
||||
ansible.builtin.include_tasks: hung_nfs_check.yml
|
||||
|
||||
- name: Capture initial boot ID
|
||||
ansible.builtin.slurp:
|
||||
src: "{{ verified_reboot_bootid_file }}"
|
||||
|
Reference in New Issue
Block a user