Document the current agent VPS access state in INFRA.md (#237)
Records the concrete, live state of Track 1 rather than just the setup procedure: both boxes' roles/IPs, the ssh invocation, where the private key lives (~/.ssh/thermograph_agent_ed25519, same convention DEPLOY.md already uses for the CI deploy key), and how to rotate it. Also notes that neither box has Docker yet and Terraform hasn't been applied to either, which is why Track 2 is currently paused. Checks off the two verification-checklist items that are actually confirmed now (SSH access, password auth dead) rather than leaving them unchecked.
This commit is contained in:
parent
1b6ef96975
commit
0a848e39af
1 changed files with 37 additions and 2 deletions
39
INFRA.md
39
INFRA.md
|
|
@ -24,6 +24,40 @@ root-effective command. See the script's header comment for the full
|
|||
rationale and revocation steps (one line to delete, or delete the whole
|
||||
account — your own access is never affected).
|
||||
|
||||
### Current access state (live)
|
||||
|
||||
Both boxes are provisioned and reachable as of this writing:
|
||||
|
||||
| Host | Role | Public IP | Login |
|
||||
|------|------|-----------|-------|
|
||||
| prod | manager (Swarm), Thermograph's eventual home | `169.58.46.181` | `agent` |
|
||||
| beta | worker (Swarm), old VPS | `75.119.132.91` | `agent` |
|
||||
|
||||
```
|
||||
ssh -i ~/.ssh/thermograph_agent_ed25519 agent@169.58.46.181 # prod
|
||||
ssh -i ~/.ssh/thermograph_agent_ed25519 agent@75.119.132.91 # beta
|
||||
```
|
||||
|
||||
The private half of the agent's dedicated keypair lives at
|
||||
`~/.ssh/thermograph_agent_ed25519` on the operator's own machine (never in
|
||||
this repo, never in a CI secret) — same convention `DEPLOY.md` already uses
|
||||
for the separate CI deploy key (`~/.ssh/thermograph_ci`). If you're setting
|
||||
this up fresh elsewhere, generate a new pair the same way
|
||||
(`ssh-keygen -t ed25519 -a 100 -C "claude-agent@thermograph-infra" -f
|
||||
~/.ssh/thermograph_agent_ed25519 -N ""`), embed the new public half in
|
||||
`AGENT_PUBKEY` at the top of `provision-agent-access.sh`, and re-run it on
|
||||
both boxes — that replaces the authorized key wholesale rather than
|
||||
appending, so an old key stops working the moment the new one lands.
|
||||
|
||||
**Keep the private key somewhere that survives** — not a scratch/temp
|
||||
directory that gets cleaned up, not anywhere-in-repo. Losing it just means
|
||||
regenerating and re-running the provisioning script; it does not lock either
|
||||
box, since your own login is untouched.
|
||||
|
||||
As of this writing, neither box has Docker installed yet and Terraform has
|
||||
not been applied to either (`prod` is a bare OS install; `beta` has an old
|
||||
`/opt/thermograph` checkout but no Docker) — Track 2 is paused on that.
|
||||
|
||||
## Track 2 — Swarm
|
||||
|
||||
See `deploy/swarm/README.md` for the exact order of operations (WireGuard
|
||||
|
|
@ -87,8 +121,9 @@ Only after 3a–3c are verified:
|
|||
whole migration; retire it deliberately, not by accident.
|
||||
|
||||
## Verification checklist
|
||||
- [ ] `ssh agent@<prod>` and `ssh agent@<beta>` both work; `sudo whoami` → `root`
|
||||
- [ ] Password SSH auth confirmed dead on both boxes
|
||||
- [x] `ssh agent@<prod>` and `ssh agent@<beta>` both work; `sudo whoami` → `root`
|
||||
- [x] Password SSH auth confirmed dead on both boxes (tested with an actual
|
||||
failed login attempt, not just config inspection)
|
||||
- [ ] `docker node ls` (from prod) shows both nodes `Ready`
|
||||
- [ ] Swarm ports (2377/7946/4789) unreachable from outside the WireGuard tunnel
|
||||
- [ ] `https://git.thermograph.org` (or your chosen domain) serves Forgejo over TLS
|
||||
|
|
|
|||
Loading…
Reference in a new issue