168 lines
8.0 KiB
JSON
168 lines
8.0 KiB
JSON
{
|
|
"schema_version": "host112_guest_recovery_receipt_v1",
|
|
"generated_at": "2026-07-11T20:10:00+08:00",
|
|
"work_item_id": "AG99-P0-008",
|
|
"trace_id": "host112-guest-recovery-20260711T193137+0800-35698",
|
|
"incident_fingerprint": "host112_vmware_ui_false_powered_off_guest_headless_wazuh_boot_timeout",
|
|
"asset": {
|
|
"canonical_id": "host:112",
|
|
"address": "192.168.0.112",
|
|
"guest_role": "Kali and Wazuh security node",
|
|
"vm_owner_host": "host:99",
|
|
"vmx_alias": "112"
|
|
},
|
|
"sensor_receipt": {
|
|
"vmware_ui_observation": "Powered off",
|
|
"vmx_process_present": true,
|
|
"vmx_process_id": 22288,
|
|
"vmx_process_owner": "NT AUTHORITY\\SYSTEM",
|
|
"vmx_process_session_id": 0,
|
|
"guest_boot_id": "f265ad96-a262-4285-9836-d2dab7eefb97",
|
|
"guest_network_reachable": true,
|
|
"guest_ssh_reachable": true,
|
|
"pre_recovery_default_target": "multi-user.target",
|
|
"pre_recovery_lightdm": "inactive",
|
|
"pre_recovery_wazuh_indexer": "failed_timeout",
|
|
"wazuh_indexer_boot_timeout": "3min",
|
|
"wazuh_indexer_boot_memory_peak": "1.2G"
|
|
},
|
|
"normalized_diagnosis": {
|
|
"vm_power_state": "running",
|
|
"vmware_ui_state": "untrusted_cross_principal_false_powered_off",
|
|
"guest_boot_state": "reachable_but_not_console_or_service_ready",
|
|
"root_causes": [
|
|
"SYSTEM-owned headless VMX is isolated from the Administrator VMware UI session",
|
|
"Kali defaulted to multi-user.target and LightDM was inactive",
|
|
"Wazuh Indexer timed out during boot contention and recovered on a delayed retry"
|
|
]
|
|
},
|
|
"source_diff": {
|
|
"new_assets": [
|
|
"scripts/reboot-recovery/host112-guest-readiness.sh",
|
|
"scripts/reboot-recovery/awoooi-host112-guest-recovery.service",
|
|
"scripts/reboot-recovery/awoooi-host112-guest-recovery.timer",
|
|
"scripts/reboot-recovery/install-host112-guest-recovery.sh"
|
|
],
|
|
"updated_assets": [
|
|
"scripts/reboot-recovery/windows99-vmware-autostart.ps1",
|
|
"scripts/reboot-recovery/reboot-auto-recovery-host-probe.sh",
|
|
"scripts/reboot-recovery/reboot-auto-recovery-slo-scorecard.py",
|
|
"scripts/reboot-recovery/reboot-auto-recovery-slo-exporter.sh",
|
|
"agent99-control-plane.ps1",
|
|
"agent99-sre-alert-inbox.ps1",
|
|
"agent99-telegram-inbox.ps1",
|
|
"apps/api/src/services/agent99_sre_bridge.py",
|
|
"ops/monitoring/alerts-unified.yml",
|
|
"docs/runbooks/REBOOT-RECOVERY-SOP.md"
|
|
],
|
|
"source_sha256": {
|
|
"host112_readiness": "dc874bf9defe655cf2cae7a678783a847b6653b4255ef5798903afbc974e3e2d",
|
|
"host112_installer": "c0ea2d8c10aebef6079f4f73f8614cd9c3fb875903b55824f6b44acf23ab40db",
|
|
"windows99_vmware_verifier": "437cc7766f06d9fd543cc472569b238149a79f2dff454dbb9ed704d9e3be7648",
|
|
"host_probe": "31dce6f90dc89e2fd38bcde91049aa79711b3e5e11a1ae2d1053e27bbbc1f01f",
|
|
"scorecard": "835abf7bf6cf587d40467351974f5eba2b84f731c78c2e6c7aaa254f0eaaf33d",
|
|
"exporter": "85f16a3d190cdca866ad44f03c4c3e4decfbdf0d3af873c8e4af4d66780d5214",
|
|
"agent99_control_plane": "c17ac79cf59b793db885ea85e17663915cab7644e7428762c312d4ac1b7eb002",
|
|
"agent99_sre_alert_inbox": "d4ce271c763eae3d52347a71a22e4b76ce66b87ceb33fe928a6aaf1b37ba7088",
|
|
"agent99_telegram_inbox": "7607967de29aa0d8c4f22f170068da4ef63a1b889fb6eb927a01dd3d1bdd525c",
|
|
"agent99_sre_bridge": "fd7b5c6f77b55d0598f50d757dd8ba3234e16f8833600637ea827d7fcae85160",
|
|
"alert_rules": "86fd0e56cb7633da2a5a09960b8bf2dd61ee917c55072b5a16ba68577e8379cc"
|
|
}
|
|
},
|
|
"decision": {
|
|
"risk": "medium",
|
|
"controlled_apply_allowed": true,
|
|
"candidate_action": "Install a bounded guest recovery timer, restricted forced-command readback, exact-command sudo executor, scorecard gates and dedicated alerts.",
|
|
"forbidden_actions": [
|
|
"host reboot",
|
|
"VM power off, reset or duplicate power on",
|
|
"firewall change",
|
|
"database restore or write",
|
|
"secret or private key value read"
|
|
]
|
|
},
|
|
"check_receipt": {
|
|
"staged_source_hashes_matched": true,
|
|
"control_public_key_fingerprint_verified": true,
|
|
"focused_contract_tests": "31 passed",
|
|
"agent99_tests": "49 passed",
|
|
"windows99_staged_contract_and_synthetic_validation": "passed",
|
|
"json_yaml_parse": "passed"
|
|
},
|
|
"execution_receipt": {
|
|
"initial_recovery_run_id": "host112-guest-recovery-20260711T193137+0800-35698",
|
|
"durable_installer_run_id": "host112-guest-recovery-20260711T195449+0800-43505",
|
|
"backup_dirs": [
|
|
"/var/lib/awoooi-host112-recovery/backups/host112-guest-recovery-20260711T193137+0800-35698",
|
|
"/var/lib/awoooi-host112-recovery/backups/host112-guest-recovery-20260711T195449+0800-43505"
|
|
],
|
|
"durable_installer_path": "/usr/local/sbin/awoooi-install-host112-guest-recovery",
|
|
"timer_enabled": true,
|
|
"timer_active": true,
|
|
"restricted_control_key_installed": true,
|
|
"sudo_exact_command_installed": true,
|
|
"agent99_runtime_revision": "d0e364bfa42947190cf1e88d1d85623e23f84858",
|
|
"agent99_runtime_manifest": "14/14 matched, mismatch 0",
|
|
"agent99_deploy_evidence": "C:\\Wooo\\Agent99\\evidence\\agent99-deploy-20260711-200939.json",
|
|
"agent99_deploy_backup": "C:\\Wooo\\Agent99\\deploy\\backup-20260711-200939",
|
|
"prometheus_rule_backup": "/home/wooo/monitoring/alerts-unified.canonical.yml.host112-v2.bak.20260711200617",
|
|
"host_reboot_performed": false,
|
|
"vm_power_change_performed": false,
|
|
"secret_read": false
|
|
},
|
|
"post_verifier": {
|
|
"host112_guest_ready": true,
|
|
"host112_console_ready": true,
|
|
"host112_services_ready": true,
|
|
"host112_recovery_timer_ready": true,
|
|
"host112_systemd_state": "running",
|
|
"host112_default_target": "graphical.target",
|
|
"host112_lightdm": "active",
|
|
"host112_vmware_tools": "active",
|
|
"host112_wazuh_indexer": "active",
|
|
"host112_wazuh_manager": "active",
|
|
"host112_wazuh_dashboard": "active",
|
|
"host112_filebeat": "active",
|
|
"forced_command_from_110": "passed",
|
|
"sudo_n_controlled_apply": "passed_no_action_needed",
|
|
"scorecard_artifact": "/home/wooo/reboot-recovery/reboot-auto-recovery-slo-20260711-200338",
|
|
"host112_active_blocker_count": 0,
|
|
"prometheus_host112_metrics_green": "5/5",
|
|
"prometheus_rule_health": "2/2 ok inactive",
|
|
"prometheus_rule_sha_source_canonical_runtime_matched": true,
|
|
"prometheus_rule_drift_guard_repaired": false,
|
|
"agent99_recover_evidence": "C:\\Wooo\\Agent99\\evidence\\agent99-Recover-20260711-200320.json",
|
|
"agent99_host112_phase": "ok",
|
|
"agent99_host112_before_ready": true,
|
|
"agent99_host112_apply_attempted": false,
|
|
"agent99_host112_after_ready": true,
|
|
"agent99_host112_transport": "direct_serialized",
|
|
"agent99_recovery_completed": true,
|
|
"agent99_recovery_coordinator_verified": true,
|
|
"agent99_reboot_slo_claimed": false,
|
|
"agent99_recovery_elapsed_seconds": 44.6,
|
|
"agent99_sre_route_selftest": "17/17 passed",
|
|
"agent99_telegram_ingest_selftest": "16/16 passed, no alert write, no Telegram send",
|
|
"windows99_vmware_verify_ready": true,
|
|
"windows99_operator_power_truth": "trust_vmx_process_and_guest_readiness_not_interactive_vmware_ui",
|
|
"reboot_recovery_tests": "142 passed"
|
|
},
|
|
"rollback": {
|
|
"command": "sudo /usr/local/sbin/awoooi-install-host112-guest-recovery --rollback /var/lib/awoooi-host112-recovery/backups/host112-guest-recovery-20260711T195449+0800-43505",
|
|
"tested": false,
|
|
"reason_not_executed": "Post-verifier passed; destructive rollback rehearsal was not required on the recovered production guest."
|
|
},
|
|
"closure": {
|
|
"host112_runtime_scope": "recovered_and_verified",
|
|
"full_host_reboot_program": "in_progress_next_600_second_drill_required",
|
|
"remaining_reboot_scorecard_blockers": [
|
|
"all_required_hosts_not_in_10_minute_reboot_window",
|
|
"fresh_all_host_reboot_event_missing",
|
|
"host_boot_observation_older_than_target_window"
|
|
],
|
|
"telegram_receipt": "healthy_state_not_sent; host112 routing and ingest verified by no-send selftests",
|
|
"km_writeback": "docs/runbooks/REBOOT-RECOVERY-SOP.md",
|
|
"work_item_writeback": "docs/operations/agent99-enterprise-ai-automation-work-items.snapshot.json"
|
|
}
|
|
}
|