1
0

runtime: publish READER-NGINX-TARGET-ROLLBACK-VERIFY-328

This commit is contained in:
homelab-runtime-publisher
2026-07-23 04:50:36 +00:00
parent 4251d881ee
commit 5cd35baa4e
4 changed files with 82 additions and 89 deletions
@@ -0,0 +1,30 @@
{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "READER-NGINX-TARGET-ROLLBACK-VERIFY-328",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "read-only",
"component": "cluster-audit",
"started_at_utc": "2026-07-23T04:50:30Z",
"finished_at_utc": "2026-07-23T04:50:35Z",
"reference_register_checked": true,
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
"error_register_checked": true,
"error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
"command_sha256": "dc320ad37c7fd1c07b6cfab2da6a8b825323a63c0659a37a09de4fedabef3c1a",
"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": "819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5",
"sanitized_output_sha256": "819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5",
"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=NGINX_HELPER_SHA256=f900b15bfdd19a1b543037cf8b9c1583e71dc8115bbb5812cf74d474e3e7859b\nDETAIL=NGINX_HELPER_INTEGRITY=PASS\nDETAIL=CONTAINER_TOOL=PASS:/bin/sh\nDETAIL=CONTAINER_TOOL=PASS:sha256sum|/usr/bin/sha256sum\nDETAIL=CONTAINER_TOOL=PASS:wc|/usr/bin/wc\nDETAIL=NGINX_TARGET_SIZE=0\nDETAIL=NGINX_TARGET_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nDETAIL=NGINX_TARGET_ROLLBACK_VERIFY=PASS\nCHANGES_MADE=NO\n"
}
@@ -0,0 +1,35 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=READER-NGINX-TARGET-ROLLBACK-VERIFY-328
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=dc320ad37c7fd1c07b6cfab2da6a8b825323a63c0659a37a09de4fedabef3c1a
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5
SANITIZED_OUTPUT_SHA256=819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5
OUTPUT_BEGIN
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/test
DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sha256sum
DETAIL=NGINX_HELPER_SHA256=f900b15bfdd19a1b543037cf8b9c1583e71dc8115bbb5812cf74d474e3e7859b
DETAIL=NGINX_HELPER_INTEGRITY=PASS
DETAIL=CONTAINER_TOOL=PASS:/bin/sh
DETAIL=CONTAINER_TOOL=PASS:sha256sum|/usr/bin/sha256sum
DETAIL=CONTAINER_TOOL=PASS:wc|/usr/bin/wc
DETAIL=NGINX_TARGET_SIZE=0
DETAIL=NGINX_TARGET_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
DETAIL=NGINX_TARGET_ROLLBACK_VERIFY=PASS
CHANGES_MADE=NO
OUTPUT_END
CHAT_OUTPUT_END
+7 -7
View File
@@ -1,19 +1,19 @@
{
"schema_version": 1,
"channel": "homelab-runtime",
"command_id": "READER-NGINX-HELPER-INTERFACE-AUDIT-327",
"command_id": "READER-NGINX-TARGET-ROLLBACK-VERIFY-328",
"status": "OK",
"rc": 0,
"host": "pve01",
"mode": "read-only",
"component": "cluster-audit",
"started_at_utc": "2026-07-23T04:47:11Z",
"finished_at_utc": "2026-07-23T04:47:11Z",
"started_at_utc": "2026-07-23T04:50:30Z",
"finished_at_utc": "2026-07-23T04:50:35Z",
"reference_register_checked": true,
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
"error_register_checked": true,
"error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
"command_sha256": "1ecb4d4b55f034d8f3108c3ed697227ad08cdeb41f63c571cd76f146fa87ceb6",
"command_sha256": "dc320ad37c7fd1c07b6cfab2da6a8b825323a63c0659a37a09de4fedabef3c1a",
"duplicate_failed_command_blocked": false,
"block_reason": null,
"execution_started": true,
@@ -22,9 +22,9 @@
"secrets_included": false,
"private_addresses_included": false,
"raw_evidence_retained_locally": true,
"raw_evidence_sha256": "fe37d1fe51b073ce5c3e29eba30db46bb555a6d5f5b7c56be036d164d6745ba0",
"sanitized_output_sha256": "fe37d1fe51b073ce5c3e29eba30db46bb555a6d5f5b7c56be036d164d6745ba0",
"raw_evidence_sha256": "819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5",
"sanitized_output_sha256": "819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5",
"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=NGINX_HELPER_SHA256=f900b15bfdd19a1b543037cf8b9c1583e71dc8115bbb5812cf74d474e3e7859b\nDETAIL=NGINX_HELPER_INTEGRITY=PASS\nDETAIL=NGINX_HELPER_SYNTAX=PASS\nDETAIL=NGINX_HELPER_LINE_COUNT=70\nDETAIL=NGINX_HELPER_SOURCE_BEGIN\n#!/usr/bin/bash\nset -Eeuo pipefail\n\nreadonly VM_HELPER=/usr/local/sbin/homelab-vm130-exec\nreadonly VM_HELPER_SHA256=1959773393723b013af7c93cd29a7b833fd607c903d044e2fcef6accaa29c275\nreadonly SHA256SUM=/usr/bin/sha256sum\nreadonly AWK=/usr/bin/awk\nreadonly GREP=/usr/bin/grep\nreadonly MKTEMP=/usr/bin/mktemp\nreadonly RM=/usr/bin/rm\nreadonly CAT=/usr/bin/cat\n\nif (($# == 0)); then\n echo \"EDGE_NGINX_EXEC_ERROR=NO_COMMAND\" >&2\n exit 64\nfi\n\nif [[ ! -x \"$VM_HELPER\" ]]; then\n echo \"EDGE_NGINX_EXEC_ERROR=VM_HELPER_MISSING\" >&2\n exit 69\nfi\n\nactual_vm_sha=\"$(\"$SHA256SUM\" \"$VM_HELPER\" | \"$AWK\" '{print $1}')\"\nif [[ \"$actual_vm_sha\" != \"$VM_HELPER_SHA256\" ]]; then\n echo \"EDGE_NGINX_EXEC_ERROR=VM_HELPER_INTEGRITY\" >&2\n exit 70\nfi\n\ntmpdir=\"$(\"$MKTEMP\" -d /tmp/homelab-edge-nginx-exec.XXXXXX)\"\ncleanup() {\n \"$RM\" -rf -- \"$tmpdir\"\n}\ntrap cleanup EXIT\n\nif ! \"$VM_HELPER\" /usr/bin/ps -eo pid=,comm=,args= >\"$tmpdir/ps.out\" 2>\"$tmpdir/ps.err\"; then\n echo \"EDGE_NGINX_EXEC_ERROR=PROCESS_QUERY\" >&2\n \"$CAT\" \"$tmpdir/ps.err\" >&2\n exit 71\nfi\n\n\"$AWK\" '$2==\"nginx\" && /nginx: master process/ {print $1}' \"$tmpdir/ps.out\" >\"$tmpdir/masters\"\nmaster_count=\"$(\"$AWK\" 'END{print NR+0}' \"$tmpdir/masters\")\"\nif [[ \"$master_count\" != 1 ]]; then\n echo \"EDGE_NGINX_EXEC_ERROR=MASTER_COUNT:$master_count\" >&2\n exit 72\nfi\n\nmaster_pid=\"$(\"$AWK\" 'NR==1{print $1}' \"$tmpdir/masters\")\"\nif [[ ! \"$master_pid\" =~ ^[0-9]+$ ]]; then\n echo \"EDGE_NGINX_EXEC_ERROR=INVALID_MASTER_PID\" >&2\n exit 73\nfi\n\nif ! \"$VM_HELPER\" /usr/bin/cat \"/proc/$master_pid/cgroup\" >\"$tmpdir/cgroup.out\" 2>\"$tmpdir/cgroup.err\"; then\n echo \"EDGE_NGINX_EXEC_ERROR=CGROUP_QUERY\" >&2\n \"$CAT\" \"$tmpdir/cgroup.err\" >&2\n exit 74\nfi\n\nif ! \"$GREP\" -Eq 'docker-[0-9a-f]+[.]scope|/docker/' \"$tmpdir/cgroup.out\"; then\n echo \"EDGE_NGINX_EXEC_ERROR=NOT_DOCKER_NGINX\" >&2\n exit 75\nfi\n\nif ! \"$VM_HELPER\" /usr/bin/test -f \"/proc/$master_pid/root/data/custom_nginx/server_proxy.conf\"; then\n echo \"EDGE_NGINX_EXEC_ERROR=PERSISTENT_PATH_MISSING\" >&2\n exit 76\nfi\n\nexec \"$VM_HELPER\" /usr/bin/nsenter -t \"$master_pid\" -m -p -n -u -i --root --wd -- \"$@\"\nDETAIL=NGINX_HELPER_SOURCE_END\nDETAIL=NGINX_HELPER_SOURCE_TRUNCATED=NO\nCHANGES_MADE=NO\n"
"output": "DETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/test\nDETAIL=LOCAL_DEPENDENCY=PASS:/usr/bin/sha256sum\nDETAIL=NGINX_HELPER_SHA256=f900b15bfdd19a1b543037cf8b9c1583e71dc8115bbb5812cf74d474e3e7859b\nDETAIL=NGINX_HELPER_INTEGRITY=PASS\nDETAIL=CONTAINER_TOOL=PASS:/bin/sh\nDETAIL=CONTAINER_TOOL=PASS:sha256sum|/usr/bin/sha256sum\nDETAIL=CONTAINER_TOOL=PASS:wc|/usr/bin/wc\nDETAIL=NGINX_TARGET_SIZE=0\nDETAIL=NGINX_TARGET_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nDETAIL=NGINX_TARGET_ROLLBACK_VERIFY=PASS\nCHANGES_MADE=NO\n"
}
+10 -82
View File
@@ -1,5 +1,5 @@
CHAT_OUTPUT_BEGIN
COMMAND_ID=READER-NGINX-HELPER-INTERFACE-AUDIT-327
COMMAND_ID=READER-NGINX-TARGET-ROLLBACK-VERIFY-328
STATUS=OK
RC=0
HOST=pve01
@@ -9,98 +9,26 @@ REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
COMMAND_SHA256=1ecb4d4b55f034d8f3108c3ed697227ad08cdeb41f63c571cd76f146fa87ceb6
COMMAND_SHA256=dc320ad37c7fd1c07b6cfab2da6a8b825323a63c0659a37a09de4fedabef3c1a
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=fe37d1fe51b073ce5c3e29eba30db46bb555a6d5f5b7c56be036d164d6745ba0
SANITIZED_OUTPUT_SHA256=fe37d1fe51b073ce5c3e29eba30db46bb555a6d5f5b7c56be036d164d6745ba0
RAW_EVIDENCE_SHA256=819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5
SANITIZED_OUTPUT_SHA256=819264c985a6294214a7194e2dac214325acf846d02972b0f86eb2697c9297a5
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=NGINX_HELPER_SHA256=f900b15bfdd19a1b543037cf8b9c1583e71dc8115bbb5812cf74d474e3e7859b
DETAIL=NGINX_HELPER_INTEGRITY=PASS
DETAIL=NGINX_HELPER_SYNTAX=PASS
DETAIL=NGINX_HELPER_LINE_COUNT=70
DETAIL=NGINX_HELPER_SOURCE_BEGIN
#!/usr/bin/bash
set -Eeuo pipefail
readonly VM_HELPER=/usr/local/sbin/homelab-vm130-exec
readonly VM_HELPER_SHA256=1959773393723b013af7c93cd29a7b833fd607c903d044e2fcef6accaa29c275
readonly SHA256SUM=/usr/bin/sha256sum
readonly AWK=/usr/bin/awk
readonly GREP=/usr/bin/grep
readonly MKTEMP=/usr/bin/mktemp
readonly RM=/usr/bin/rm
readonly CAT=/usr/bin/cat
if (($# == 0)); then
echo "EDGE_NGINX_EXEC_ERROR=NO_COMMAND" >&2
exit 64
fi
if [[ ! -x "$VM_HELPER" ]]; then
echo "EDGE_NGINX_EXEC_ERROR=VM_HELPER_MISSING" >&2
exit 69
fi
actual_vm_sha="$("$SHA256SUM" "$VM_HELPER" | "$AWK" '{print $1}')"
if [[ "$actual_vm_sha" != "$VM_HELPER_SHA256" ]]; then
echo "EDGE_NGINX_EXEC_ERROR=VM_HELPER_INTEGRITY" >&2
exit 70
fi
tmpdir="$("$MKTEMP" -d /tmp/homelab-edge-nginx-exec.XXXXXX)"
cleanup() {
"$RM" -rf -- "$tmpdir"
}
trap cleanup EXIT
if ! "$VM_HELPER" /usr/bin/ps -eo pid=,comm=,args= >"$tmpdir/ps.out" 2>"$tmpdir/ps.err"; then
echo "EDGE_NGINX_EXEC_ERROR=PROCESS_QUERY" >&2
"$CAT" "$tmpdir/ps.err" >&2
exit 71
fi
"$AWK" '$2=="nginx" && /nginx: master process/ {print $1}' "$tmpdir/ps.out" >"$tmpdir/masters"
master_count="$("$AWK" 'END{print NR+0}' "$tmpdir/masters")"
if [[ "$master_count" != 1 ]]; then
echo "EDGE_NGINX_EXEC_ERROR=MASTER_COUNT:$master_count" >&2
exit 72
fi
master_pid="$("$AWK" 'NR==1{print $1}' "$tmpdir/masters")"
if [[ ! "$master_pid" =~ ^[0-9]+$ ]]; then
echo "EDGE_NGINX_EXEC_ERROR=INVALID_MASTER_PID" >&2
exit 73
fi
if ! "$VM_HELPER" /usr/bin/cat "/proc/$master_pid/cgroup" >"$tmpdir/cgroup.out" 2>"$tmpdir/cgroup.err"; then
echo "EDGE_NGINX_EXEC_ERROR=CGROUP_QUERY" >&2
"$CAT" "$tmpdir/cgroup.err" >&2
exit 74
fi
if ! "$GREP" -Eq 'docker-[0-9a-f]+[.]scope|/docker/' "$tmpdir/cgroup.out"; then
echo "EDGE_NGINX_EXEC_ERROR=NOT_DOCKER_NGINX" >&2
exit 75
fi
if ! "$VM_HELPER" /usr/bin/test -f "/proc/$master_pid/root/data/custom_nginx/server_proxy.conf"; then
echo "EDGE_NGINX_EXEC_ERROR=PERSISTENT_PATH_MISSING" >&2
exit 76
fi
exec "$VM_HELPER" /usr/bin/nsenter -t "$master_pid" -m -p -n -u -i --root --wd -- "$@"
DETAIL=NGINX_HELPER_SOURCE_END
DETAIL=NGINX_HELPER_SOURCE_TRUNCATED=NO
DETAIL=CONTAINER_TOOL=PASS:/bin/sh
DETAIL=CONTAINER_TOOL=PASS:sha256sum|/usr/bin/sha256sum
DETAIL=CONTAINER_TOOL=PASS:wc|/usr/bin/wc
DETAIL=NGINX_TARGET_SIZE=0
DETAIL=NGINX_TARGET_SHA256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
DETAIL=NGINX_TARGET_ROLLBACK_VERIFY=PASS
CHANGES_MADE=NO
OUTPUT_END