homelab/ansible/ansible-old/playbooks/storage/terramaster_health_inventory.yml

82 lines
2.8 KiB
YAML

---
- name: TerraMaster NAS read-only health inventory
hosts: terramaster
gather_facts: false
become: false
vars:
nas_ssh_timeout_seconds: 10
tasks:
- name: Verify SSH port is reachable from control node
ansible.builtin.wait_for:
host: "{{ ansible_host | default(inventory_hostname) }}"
port: 22
timeout: "{{ nas_ssh_timeout_seconds }}"
connect_timeout: 3
delegate_to: localhost
- name: Verify command execution over SSH
ansible.builtin.raw: "echo NAS_SSH_OK"
register: nas_ssh_check
changed_when: false
failed_when: false
- name: Collect operating system summary
ansible.builtin.raw: "uname -a"
register: nas_uname
changed_when: false
failed_when: false
- name: Collect uptime summary
ansible.builtin.raw: "uptime"
register: nas_uptime
changed_when: false
failed_when: false
- name: Collect root filesystem utilization
ansible.builtin.raw: "df -h /"
register: nas_root_df
changed_when: false
failed_when: false
- name: Collect memory utilization summary
ansible.builtin.raw: "free -m"
register: nas_memory
changed_when: false
failed_when: false
- name: Collect failed systemd unit count (if systemd exists)
ansible.builtin.raw: "systemctl --failed --no-legend --no-pager 2>/dev/null | wc -l || true"
register: nas_failed_units
changed_when: false
failed_when: false
- name: Build TerraMaster health summary
ansible.builtin.set_fact:
terramaster_health_summary:
host: "{{ inventory_hostname }}"
address: "{{ ansible_host | default(inventory_hostname) }}"
ssh_check:
rc: "{{ nas_ssh_check.rc | default('n/a') }}"
stdout: "{{ nas_ssh_check.stdout | default('') | trim }}"
stderr: "{{ nas_ssh_check.stderr | default('') | trim }}"
os_summary:
rc: "{{ nas_uname.rc | default('n/a') }}"
stdout: "{{ nas_uname.stdout | default('') | trim }}"
uptime_summary:
rc: "{{ nas_uptime.rc | default('n/a') }}"
stdout: "{{ nas_uptime.stdout | default('') | trim }}"
root_filesystem:
rc: "{{ nas_root_df.rc | default('n/a') }}"
stdout: "{{ nas_root_df.stdout | default('') | trim }}"
memory_summary:
rc: "{{ nas_memory.rc | default('n/a') }}"
stdout: "{{ nas_memory.stdout | default('') | trim }}"
failed_units_count:
rc: "{{ nas_failed_units.rc | default('n/a') }}"
stdout: "{{ nas_failed_units.stdout | default('') | trim }}"
- name: Print TerraMaster health summary
ansible.builtin.debug:
var: terramaster_health_summary