OSVauco/docs/VM-BOOTSTRAP.md
Chris Christiansen 9fcb9c354a
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
feat(core): Fresh initialization - Deploy v3.6.1 Singularity Architecture
2026-09-03 04:03:09 +00:00

4.5 KiB

OSVauco — VM Bootstrap Guide

Denne guiden gjelder ny VM eller etter serverbytte.
Følg stegene i rekkefølge. Ikke hopp over noe.


Forutsetninger

Krav Verdi
GCP-prosjekt propane-will-491900-m5
Cloud Run region us-central1
Vertex AI location us-central1
Billing account 0171F6-057E6B-A260BA
gcloud CLI Installert på VM (gcloud version)
Git Installert (git --version)

Steg 1 — SSH-nøkkel til GitHub (én gang per VM)

# Generer nøkkel
ssh-keygen -t ed25519 -C "chris.christiansen@vauco.no" -f ~/.ssh/id_ed25519 -N ""

# Vis public key — kopier hele linjen
cat ~/.ssh/id_ed25519.pub

Gå til github.com/settings/keysNew SSH key
Tittel: osvauco-dev-vm → lim inn nøkkelen → Add SSH key

# Test tilkobling
ssh -T git@github.com
# Forventet: Hi vauco-saas! You've successfully authenticated...

Steg 2 — Klon repo og sett opp .env

cd ~
git clone git@github.com:vauco-saas/OSVauco.git
cd OSVauco

# Sett git-identitet
git config --global user.name "Chris Christiansen"
git config --global user.email "chris.christiansen@vauco.no"

# Opprett .env
cp .env.example .env
nano .env

Fyll inn disse to feltene (resten er ferdigutfylt):

export BILLING_ACCOUNT_ID="0171F6-057E6B-A260BA"
# ALERT_EMAIL er allerede satt til chris.christiansen@vauco.no

Steg 3 — Autentiser med din Google-konto

⚠️ Viktig: VM-en starter med Compute Engine default service account.
Du MÅ logge inn som deg selv — ellers feiler alle gcloud-kall.

gcloud auth login
# Følg lenken, logg inn som chris.christiansen@vauco.no

gcloud auth application-default login
# Samme prosess — nødvendig for Vertex AI / ADK

gcloud config set project propane-will-491900-m5
gcloud config set compute/region us-central1

Verifiser:

gcloud auth list
# Skal vise: * chris.christiansen@vauco.no

Steg 4 — Kjør bootstrap-scriptet

source .env
bash scripts/bootstrap.sh

Scriptet gjør i rekkefølge:

  1. Auth-sjekk
  2. Bygg base Docker-image (hvis ikke finnes)
  3. Verifiser at Cloud Run-agenten svarer

Steg 5 — Manuell IAM-fix (kun ved nytt prosjekt / ny CI/CD)

Disse to IAM-bindingene må ligge på plass for at CI/CD skal fungere:

# Cloud Build SA kan deploye som osvauco-agent-sa
gcloud iam service-accounts add-iam-policy-binding \
  osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com \
  --member="serviceAccount:357036551735@cloudbuild.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser" \
  --project=propane-will-491900-m5

# osvauco-agent-sa kan opptre som seg selv
gcloud iam service-accounts add-iam-policy-binding \
  osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com \
  --member="serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser" \
  --project=propane-will-491900-m5

Hurtigtest — svar fra agenten

TOKEN=$(gcloud auth print-identity-token)
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"user_id":"chris","session_id":"test-1","message":"Hei, hvem er du?"}' \
  https://osvauco-agent-357036551735.us-central1.run.app/run | python3 -m json.tool

Forventet svar:

{
  "user_id": "chris",
  "session_id": "test-1",
  "response": "Jeg er OPAX, en OSVauco AI-agent."
}

Kveld — teardown (OBLIGATORISK)

bash infrastructure/03-teardown.sh

Kjøres hver kveld for å unngå 24/7-fakturering.


Feilsøking

Feil Årsak Fix
ACCESS_TOKEN_SCOPE_INSUFFICIENT Kjører som Compute SA gcloud auth login
Publisher Model ...gemini-2.0-flash(-001) was not found 2.0-modellene er utfaset / ikke tilgjengelige i prosjektet Sett GOOGLE_CLOUD_LOCATION=us-central1 og bruk ORCHESTRATOR_MODEL=gemini-2.5-flash, SUBAGENT_MODEL=gemini-2.5-flash, REASONING_MODEL=gemini-3.5-flash
osvauco-base:latest not found Base-image ikke bygget bash scripts/bootstrap.sh
iam.serviceaccounts.actAs denied Mangler IAM-binding Steg 5 over
git push krever passord HTTPS-remote git remote set-url origin git@github.com:vauco-saas/OSVauco.git
fetch first ved push Remote har nyere commits git pull --rebase && git push

OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1