--- # Validation and health check tasks - name: Gather disk usage statistics shell: df -h | grep -vE '^Filesystem|tmpfs|cdrom' register: validate_disk_usage changed_when: false failed_when: false tags: [validate, health-check] - name: Gather memory usage statistics shell: free -h register: validate_memory_usage changed_when: false tags: [validate, health-check] - name: Gather swap usage statistics shell: swapon --show register: validate_swap_usage changed_when: false failed_when: false tags: [validate, health-check] - name: Gather system uptime shell: uptime register: validate_system_uptime changed_when: false tags: [validate, health-check] - name: Gather logged-in users shell: who register: validate_logged_users changed_when: false failed_when: false tags: [validate, health-check] - name: Check high CPU processes shell: ps aux --sort=-%cpu | head -10 register: validate_top_cpu_processes changed_when: false tags: [validate, health-check] - name: Check high memory processes shell: ps aux --sort=-%mem | head -10 register: validate_top_mem_processes changed_when: false tags: [validate, health-check] - name: Check for disk usage warnings (>80%) shell: df -h | awk 'NR>1 {gsub(/%/,"",$5); if($5>80) print $0}' register: validate_disk_warnings changed_when: false failed_when: false tags: [validate, health-check] - name: Verify statistics directory exists stat: path: "{{ system_info_stats_dir }}" register: validate_stats_dir delegate_to: localhost become: false tags: [validate] - name: Verify JSON file was created stat: path: "{{ system_info_stats_dir }}/system_info.json" register: validate_json_file delegate_to: localhost become: false tags: [validate] - name: Display system health summary debug: msg: - "=== System Health Check for {{ ansible_fqdn }} ===" - "Uptime: {{ validate_system_uptime.stdout }}" - "" - "=== Disk Usage ===" - "{{ validate_disk_usage.stdout_lines }}" - "" - "=== Memory Usage ===" - "{{ validate_memory_usage.stdout_lines }}" - "" - "{% if validate_swap_usage.stdout_lines | length > 0 %}=== Swap Usage ==={{ validate_swap_usage.stdout_lines }}{% else %}No swap configured{% endif %}" - "" - "{% if validate_disk_warnings.stdout_lines | length > 0 %}=== DISK WARNINGS (>80% usage) ==={{ validate_disk_warnings.stdout_lines }}{% endif %}" - "" - "=== Logged Users ===" - "{{ validate_logged_users.stdout_lines if validate_logged_users.stdout_lines | length > 0 else ['No users logged in'] }}" - "" - "=== Top CPU Processes ===" - "{{ validate_top_cpu_processes.stdout_lines[:5] }}" - "" - "=== Top Memory Processes ===" - "{{ validate_top_mem_processes.stdout_lines[:5] }}" - "" - "=== Statistics Files ===" - "Directory exists: {{ validate_stats_dir.stat.exists }}" - "JSON file created: {{ validate_json_file.stat.exists }}" - "Location: {{ system_info_stats_dir }}" tags: [validate, health-check]