82 lines
2.8 KiB
YAML
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 |