{"id":5925,"sha1":"1ea0a9620a8f097ec03e3ad8b5e1d0c9ad12190d","playbook":{"id":3805,"items":{"plays":7,"tasks":10,"results":61,"hosts":8,"files":1,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":"/home/ssh-gateway/.ssh/id_rsa","remote_user":"root","connection":"ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":false,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/ssh-gateway/ansible/kuly/bash-kvm-inventory-dev.sh"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":20,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["zz-kvm_patching_workflow.yml"]},"labels":[{"id":1,"name":"remote_user:root"},{"id":2,"name":"check:False"},{"id":3,"name":"tags:all"}],"started":"2025-09-15T17:58:30.380464+01:00","ended":"2025-09-15T17:59:36.932776+01:00","duration":"00:01:06.552312","name":null,"ansible_version":"2.16.11","client_version":"1.7.3","python_version":"3.10.10","server_version":"1.7.3","status":"failed","path":"/home/ssh-gateway/ansible/kuly/zz-kvm_patching_workflow.yml","controller":"ssh-gw-4.layershift.com","user":"root"},"content":"---\n- name: Conditional KVM Host Health Check\n  hosts: all\n  gather_facts: false\n  serial: 1\n  vars:\n    health_check_file: \"./zz-kvm_patching_workflow.txt\"\n\n  tasks:\n    - name: Check if system needs restarting\n      kvm_upgrade_utils:\n        action: check_restart\n      register: restart_status\n      changed_when: restart_status.needs_restarting\n\n    - name: Check for available updates\n      kvm_upgrade_utils:\n        action: check_updates\n      register: update_status\n      changed_when: update_status.updates_available\n\n    - name: Validate system resources\n      kvm_upgrade_utils:\n        action: validate_resources\n        min_available_ram_mb: 2048\n      register: resource_status\n      changed_when: not resource_status.resource_status.sufficient_memory\n\n    - name: Check RPM database integrity\n      kvm_upgrade_utils:\n        action: check_rpm_database\n      register: rpm_status\n      changed_when: not rpm_status.rpm_database_healthy\n\n    - name: Create header for host status\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          ========================================\n          Host: {{ inventory_hostname }}\n          ========================================\n        create: true\n        insertafter: EOF\n      delegate_to: localhost\n\n    - name: Add restart status\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          {% if restart_status.needs_restarting %}\n          \ud83d\udea8 RESTART REQUIRED\n          {% else %}\n          \u2705 No restart needed\n          {% endif %}\n        insertafter: EOF\n      delegate_to: localhost\n\n    - name: Add updates status\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          {% if update_status.updates_available %}\n          \ud83d\udce6 Updates: {{ update_status.update_count }} available\n          {% else %}\n          \u2705 No updates available\n          {% endif %}\n        insertafter: EOF\n      delegate_to: localhost\n\n    - name: Add memory status\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          {% if resource_status.resource_status.sufficient_memory %}\n          \u2705 Memory: {{ resource_status.resource_status.available_ram_mb }}MB available\n          {% else %}\n          \ud83d\udea8 Memory: LOW ({{ resource_status.resource_status.available_ram_mb }}MB < 2048MB)\n          {% endif %}\n        insertafter: EOF\n      delegate_to: localhost\n\n    - name: Add RPM database status\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          {% if rpm_status.rpm_database_healthy %}\n          \u2705 RPM Database: Healthy\n          {% else %}\n          \ud83d\udea8 RPM Database: CORRUPTED\n          {% endif %}\n        insertafter: EOF\n      delegate_to: localhost\n\n    - name: Add footer and empty line\n      ansible.builtin.lineinfile:\n        path: \"{{ health_check_file }}\"\n        line: |\n          ========================================\n          \n        insertafter: EOF\n      delegate_to: localhost\n","created":"2025-09-15T17:58:30.397393+01:00","updated":"2025-09-15T17:58:30.397413+01:00","path":"/home/ssh-gateway/ansible/kuly/zz-kvm_patching_workflow.yml"}