{"id":5858,"sha1":"143a324f51255134cf5d083860eca4b2268d9472","playbook":{"id":3738,"items":{"plays":1,"tasks":9,"results":3551,"hosts":399,"files":1,"records":0},"arguments":{"version":null,"verbosity":2,"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-prod.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":["find_if_rpm_db_is_corrupted.yaml"]},"labels":[{"id":1,"name":"remote_user:root"},{"id":2,"name":"check:False"},{"id":3,"name":"tags:all"}],"started":"2025-09-11T15:26:08.799282+01:00","ended":"2025-09-11T15:37:28.081660+01:00","duration":"00:11:19.282378","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/find_if_rpm_db_is_corrupted.yaml","controller":"ssh-gw-4.layershift.com","user":"root"},"content":"---\n- name: Check RPM Database Integrity\n  hosts: all\n  gather_facts: false\n\n  tasks:\n    - name: Test 1 - Basic RPM query (should show errors if corrupted)\n      ansible.builtin.command: rpm -q rpm\n      register: rpm_query_test\n      ignore_errors: true\n      changed_when: false\n      # noqa: command-instead-of-module\n\n    - name: Test 2 - List all packages (common corruption indicator)\n      ansible.builtin.command: rpm -qa\n      register: rpm_list_test\n      ignore_errors: true\n      changed_when: false\n      # noqa: command-instead-of-module\n\n    - name: Test 3 - Query specific system file (detects DB issues)\n      ansible.builtin.command: rpm -qf /etc/os-release\n      register: rpm_file_query\n      ignore_errors: true\n      changed_when: false\n      # noqa: command-instead-of-module\n\n    - name: Test 4 - Verify RPM database integrity\n      ansible.builtin.command: rpm -Va rpm\n      register: rpm_verify\n      ignore_errors: true\n      changed_when: false\n      # noqa: command-instead-of-module\n\n    - name: Test 5 - Try DNF operation (shows higher-level errors)\n      ansible.builtin.command: dnf list installed rpm\n      register: dnf_test\n      ignore_errors: true\n      changed_when: false\n\n    - name: Test 6 - Check for database lock issues\n      ansible.builtin.command: rpm -q yum\n      register: rpm_lock_test\n      ignore_errors: true\n      changed_when: false\n      # noqa: command-instead-of-module\n\n    - name: Check for specific error patterns in outputs\n      ansible.builtin.set_fact:\n        has_errors: >-\n          {{\n            (rpm_query_test.stderr | length > 0 and 'error' in rpm_query_test.stderr | lower) or\n            (rpm_list_test.stderr | length > 0 and 'error' in rpm_list_test.stderr | lower) or\n            (rpm_file_query.stderr | length > 0 and 'error' in rpm_file_query.stderr | lower) or\n            (dnf_test.stderr | length > 0 and ('error' in dnf_test.stderr | lower or 'db' in dnf_test.stderr | lower)) or\n            (rpm_lock_test.stderr | length > 0 and 'lock' in rpm_lock_test.stderr | lower)\n          }}\n\n    - name: Display detailed error information\n      ansible.builtin.debug:\n        msg: |\n          RPM Corruption Check Results:\n\n          1. rpm -q rpm:\n             RC: {{ rpm_query_test.rc }}\n             STDERR: {{ rpm_query_test.stderr | default('') }}\n\n          2. rpm -qa:\n             RC: {{ rpm_list_test.rc }}\n             STDERR: {{ rpm_list_test.stderr | default('') }}\n\n          3. rpm -qf /etc/os-release:\n             RC: {{ rpm_file_query.rc }}\n             STDERR: {{ rpm_file_query.stderr | default('') }}\n\n          4. rpm -Va rpm:\n             RC: {{ rpm_verify.rc }}\n             STDERR: {{ rpm_verify.stderr | default('') }}\n\n          5. dnf list installed rpm:\n             RC: {{ dnf_test.rc }}\n             STDERR: {{ dnf_test.stderr | default('') }}\n\n          CORRUPTION DETECTED: {{ 'YES' if has_errors else 'NO' }}\n\n    - name: Announce corruption with actual error messages\n      ansible.builtin.debug:\n        msg: |\n          ==========================================\n          RPM DATABASE CORRUPTION DETECTED!\n          ==========================================\n          Host: {{ inventory_hostname }}\n\n          Error Details:\n          {% if 'error' in rpm_query_test.stderr | lower %}\n          - rpm -q rpm failed: {{ rpm_query_test.stderr }}\n          {% endif %}\n          {% if 'error' in rpm_list_test.stderr | lower %}\n          - rpm -qa failed: {{ rpm_list_test.stderr }}\n          {% endif %}\n          {% if 'error' in rpm_file_query.stderr | lower %}\n          - rpm -qf failed: {{ rpm_file_query.stderr }}\n          {% endif %}\n          {% if 'error' in dnf_test.stderr | lower or 'db' in dnf_test.stderr | lower %}\n          - dnf operation failed: {{ dnf_test.stderr }}\n          {% endif %}\n\n          Common fix commands:\n          1. rm -f /var/lib/rpm/__db*\n          2. rpm --rebuilddb\n          3. Verify: rpm -qa | head -10\n          ==========================================\n      when: has_errors\n","created":"2025-09-11T15:26:08.814571+01:00","updated":"2025-09-11T15:26:08.814593+01:00","path":"/home/ssh-gateway/ansible/kuly/find_if_rpm_db_is_corrupted.yaml"}