wip: setup-agent-chroot: # === Install base packages ===
This commit is contained in:
63
lima/setup-agent-chroot.sh
Normal file
63
lima/setup-agent-chroot.sh
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
# === machine setup ===
|
||||
sudo apt update
|
||||
sudo apt install -y debootstrap
|
||||
|
||||
# === Config ===
|
||||
CHROOT_ROOT=/srv/mrva/agent-root
|
||||
GO_SRC_DIR=/home/hohn/work-gh/mrva/mrvaagent
|
||||
CODEQL_VERSION=latest
|
||||
|
||||
|
||||
# === Bootstrap base system ===
|
||||
echo "[1/6] Bootstrapping Ubuntu into $CHROOT_ROOT"
|
||||
sudo debootstrap --variant=minbase bookworm "$CHROOT_ROOT" http://deb.debian.org/debian
|
||||
|
||||
# === Install base packages ===
|
||||
echo "[2/6] Installing base packages"
|
||||
sudo mount -t proc none "$CHROOT_ROOT/proc"
|
||||
sudo chroot "$CHROOT_ROOT" bash -c "
|
||||
apt-get update &&
|
||||
apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
unzip \
|
||||
default-jdk
|
||||
"
|
||||
|
||||
# === Install CodeQL CLI ===
|
||||
echo "[3/6] Installing CodeQL CLI"
|
||||
TAG=$(curl -s https://api.github.com/repos/github/codeql-cli-binaries/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
echo " -> Using CodeQL version: $TAG"
|
||||
mkdir -p "$CHROOT_ROOT/opt"
|
||||
curl -L "https://github.com/github/codeql-cli-binaries/releases/download/$TAG/codeql-linux64.zip" -o /tmp/codeql.zip
|
||||
unzip /tmp/codeql.zip -d "$CHROOT_ROOT/opt"
|
||||
rm /tmp/codeql.zip
|
||||
sudo chmod -R +x "$CHROOT_ROOT/opt/codeql"
|
||||
|
||||
# === Set CodeQL env vars ===
|
||||
echo "[4/6] Adding CodeQL environment to chroot"
|
||||
sudo tee "$CHROOT_ROOT/etc/profile.d/codeql.sh" > /dev/null <<EOF
|
||||
export CODEQL_CLI_PATH=/opt/codeql/codeql
|
||||
export CODEQL_JAVA_HOME=/usr
|
||||
EOF
|
||||
|
||||
# === Build Go binary ===
|
||||
echo "[5/6] Building mrvaagent Go binary"
|
||||
cd "$GO_SRC_DIR"
|
||||
GO111MODULE=on CGO_ENABLED=0 go build -o mrvaagent-binary
|
||||
|
||||
echo " -> Installing binary to chroot"
|
||||
sudo cp mrvaagent-binary "$CHROOT_ROOT/usr/local/bin/mrvaagent"
|
||||
|
||||
# === Install minimal entrypoint ===
|
||||
echo "[6/6] Installing entrypoint script"
|
||||
sudo tee "$CHROOT_ROOT/usr/local/bin/entrypoint.sh" > /dev/null <<'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "Starting agent..."
|
||||
exec /usr/local/bin/mrvaagent
|
||||
EOF
|
||||
sudo chmod +x "$CHROOT_ROOT/usr/local/bin/entrypoint.sh"
|
||||
|
||||
echo "✅ Agent chroot setup complete at $CHROOT_ROOT"
|
||||
Reference in New Issue
Block a user