runtime: publish READER-VM130-EXEC-INTERFACE-AUDIT-332
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"channel": "homelab-runtime",
|
||||
"command_id": "READER-VM130-EXEC-INTERFACE-AUDIT-332",
|
||||
"status": "OK",
|
||||
"rc": 0,
|
||||
"host": "pve01",
|
||||
"mode": "read-only",
|
||||
"component": "cluster-audit",
|
||||
"started_at_utc": "2026-07-23T05:04:31Z",
|
||||
"finished_at_utc": "2026-07-23T05:04:31Z",
|
||||
"reference_register_checked": true,
|
||||
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
|
||||
"error_register_checked": true,
|
||||
"error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
|
||||
"command_sha256": "c3afb515a991225c64ea90bd9e285a44f09af255097fca7a30cae3c70af84c3e",
|
||||
"duplicate_failed_command_blocked": false,
|
||||
"block_reason": null,
|
||||
"execution_started": true,
|
||||
"changes_made": false,
|
||||
"sanitized": true,
|
||||
"secrets_included": false,
|
||||
"private_addresses_included": false,
|
||||
"raw_evidence_retained_locally": true,
|
||||
"raw_evidence_sha256": "761533b89826503b8ca2118991abaa2198d219e3e62eb6b18caf6d6b4518ad56",
|
||||
"sanitized_output_sha256": "761533b89826503b8ca2118991abaa2198d219e3e62eb6b18caf6d6b4518ad56",
|
||||
"output_truncated_in_json": false,
|
||||
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
||||
"output": "DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/test\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sha256sum\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/awk\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sed\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/bash\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/stat\nDETAIL=VM130_EXEC_SHA256=1959773393723b013af7c93cd29a7b833fd607c903d044e2fcef6accaa29c275\nDETAIL=VM130_EXEC_INTEGRITY=PASS\nDETAIL=VM130_EXEC_METADATA=root:root|750|1333|regular file\nDETAIL=VM130_EXEC_FIRST_LINE=#!/usr/bin/bash\nDETAIL=VM130_EXEC_SYNTAX=PASS\nDETAIL=VM130_EXEC_LINE_COUNT=53\nDETAIL=VM130_EXEC_SOURCE_BEGIN\n#!/usr/bin/bash\nset -Eeuo pipefail\n\nreadonly SSH=/usr/bin/ssh\nreadonly JQ=/usr/bin/jq\nreadonly MKTEMP=/usr/bin/mktemp\nreadonly RM=/usr/bin/rm\nreadonly CAT=/usr/bin/cat\nreadonly HOST=root@pve03\nreadonly VMID=130\n\nif (($# == 0)); then\n echo \"VM130_EXEC_ERROR=NO_COMMAND\" >&2\n exit 64\nfi\n\ntmpdir=\"$(\"$MKTEMP\" -d /tmp/homelab-vm130-exec.XXXXXX)\"\ncleanup() {\n \"$RM\" -rf -- \"$tmpdir\"\n}\ntrap cleanup EXIT\n\nprintf -v remote_cmd \"%q \" /usr/sbin/qm guest exec \"$VMID\" -- \"$@\"\n\nset +e\n\"$SSH\" -o BatchMode=yes -o ConnectTimeout=8 \"$HOST\" \"$remote_cmd\" >\"$tmpdir/qga.json\" 2>\"$tmpdir/ssh.err\"\nssh_rc=$?\nset -e\n\nif ((ssh_rc != 0)); then\n echo \"VM130_EXEC_ERROR=SSH_FAILURE\" >&2\n echo \"VM130_EXEC_SSH_RC=$ssh_rc\" >&2\n \"$CAT\" \"$tmpdir/ssh.err\" >&2\n exit 125\nfi\n\nif ! \"$JQ\" -e 'type==\"object\" and (.exited == 1) and (.exitcode | type == \"number\")' \"$tmpdir/qga.json\" >/dev/null 2>&1; then\n echo \"VM130_EXEC_ERROR=INVALID_QGA_JSON\" >&2\n \"$CAT\" \"$tmpdir/ssh.err\" >&2\n \"$CAT\" \"$tmpdir/qga.json\" >&2\n exit 126\nfi\n\n\"$JQ\" -j '.\"out-data\" // \"\"' \"$tmpdir/qga.json\"\n\"$JQ\" -j '.\"err-data\" // \"\"' \"$tmpdir/qga.json\" >&2\n\nguest_rc=\"$(\"$JQ\" -r '.exitcode' \"$tmpdir/qga.json\")\"\nif [[ ! \"$guest_rc\" =~ ^[0-9]+$ ]] || ((guest_rc > 255)); then\n echo \"VM130_EXEC_ERROR=INVALID_GUEST_EXITCODE\" >&2\n exit 126\nfi\n\nexit \"$guest_rc\"\nDETAIL=VM130_EXEC_SOURCE_END\nDETAIL=VM130_EXEC_SOURCE_TRUNCATED=NO\nCHANGES_MADE=NO\n"
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=READER-VM130-EXEC-INTERFACE-AUDIT-332
|
||||
STATUS=OK
|
||||
RC=0
|
||||
HOST=pve01
|
||||
MODE=read-only
|
||||
COMPONENT=cluster-audit
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
|
||||
COMMAND_SHA256=c3afb515a991225c64ea90bd9e285a44f09af255097fca7a30cae3c70af84c3e
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGES_MADE=false
|
||||
SANITIZED=yes
|
||||
SECRETS_INCLUDED=no
|
||||
PRIVATE_ADDRESSES_INCLUDED=no
|
||||
RAW_EVIDENCE_SHA256=761533b89826503b8ca2118991abaa2198d219e3e62eb6b18caf6d6b4518ad56
|
||||
SANITIZED_OUTPUT_SHA256=761533b89826503b8ca2118991abaa2198d219e3e62eb6b18caf6d6b4518ad56
|
||||
OUTPUT_BEGIN
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/test
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sha256sum
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/awk
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sed
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/bash
|
||||
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/stat
|
||||
DETAIL=VM130_EXEC_SHA256=1959773393723b013af7c93cd29a7b833fd607c903d044e2fcef6accaa29c275
|
||||
DETAIL=VM130_EXEC_INTEGRITY=PASS
|
||||
DETAIL=VM130_EXEC_METADATA=root:root|750|1333|regular file
|
||||
DETAIL=VM130_EXEC_FIRST_LINE=#!/usr/bin/bash
|
||||
DETAIL=VM130_EXEC_SYNTAX=PASS
|
||||
DETAIL=VM130_EXEC_LINE_COUNT=53
|
||||
DETAIL=VM130_EXEC_SOURCE_BEGIN
|
||||
#!/usr/bin/bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
readonly SSH=/usr/bin/ssh
|
||||
readonly JQ=/usr/bin/jq
|
||||
readonly MKTEMP=/usr/bin/mktemp
|
||||
readonly RM=/usr/bin/rm
|
||||
readonly CAT=/usr/bin/cat
|
||||
readonly HOST=root@pve03
|
||||
readonly VMID=130
|
||||
|
||||
if (($# == 0)); then
|
||||
echo "VM130_EXEC_ERROR=NO_COMMAND" >&2
|
||||
exit 64
|
||||
fi
|
||||
|
||||
tmpdir="$("$MKTEMP" -d /tmp/homelab-vm130-exec.XXXXXX)"
|
||||
cleanup() {
|
||||
"$RM" -rf -- "$tmpdir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
printf -v remote_cmd "%q " /usr/sbin/qm guest exec "$VMID" -- "$@"
|
||||
|
||||
set +e
|
||||
"$SSH" -o BatchMode=yes -o ConnectTimeout=8 "$HOST" "$remote_cmd" >"$tmpdir/qga.json" 2>"$tmpdir/ssh.err"
|
||||
ssh_rc=$?
|
||||
set -e
|
||||
|
||||
if ((ssh_rc != 0)); then
|
||||
echo "VM130_EXEC_ERROR=SSH_FAILURE" >&2
|
||||
echo "VM130_EXEC_SSH_RC=$ssh_rc" >&2
|
||||
"$CAT" "$tmpdir/ssh.err" >&2
|
||||
exit 125
|
||||
fi
|
||||
|
||||
if ! "$JQ" -e 'type=="object" and (.exited == 1) and (.exitcode | type == "number")' "$tmpdir/qga.json" >/dev/null 2>&1; then
|
||||
echo "VM130_EXEC_ERROR=INVALID_QGA_JSON" >&2
|
||||
"$CAT" "$tmpdir/ssh.err" >&2
|
||||
"$CAT" "$tmpdir/qga.json" >&2
|
||||
exit 126
|
||||
fi
|
||||
|
||||
"$JQ" -j '."out-data" // ""' "$tmpdir/qga.json"
|
||||
"$JQ" -j '."err-data" // ""' "$tmpdir/qga.json" >&2
|
||||
|
||||
guest_rc="$("$JQ" -r '.exitcode' "$tmpdir/qga.json")"
|
||||
if [[ ! "$guest_rc" =~ ^[0-9]+$ ]] || ((guest_rc > 255)); then
|
||||
echo "VM130_EXEC_ERROR=INVALID_GUEST_EXITCODE" >&2
|
||||
exit 126
|
||||
fi
|
||||
|
||||
exit "$guest_rc"
|
||||
DETAIL=VM130_EXEC_SOURCE_END
|
||||
DETAIL=VM130_EXEC_SOURCE_TRUNCATED=NO
|
||||
CHANGES_MADE=NO
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
Reference in New Issue
Block a user