diff --git a/infra/infra-hosts.md b/infra/infra-hosts.md index d4afd4b..f465808 100644 --- a/infra/infra-hosts.md +++ b/infra/infra-hosts.md @@ -150,7 +150,8 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant) | jp1 | db | 1 | etcd-1 | | jp1 | default | 20 | RUNNING 18 + STOPPED 2 (baserow, iac-route) | | jp1 | monitoring | 2 | grafana, prometheus | -| kr1 | default | 4 | brokkr, heimdall, mariadb-2, postgres-2 | +| kr1 | default | 3 | brokkr, mariadb-2, postgres-2 | +| kr1 | ops | 1 | heimdall (tofu 관리) | | kr2 | default | 2 | mariadb-3, postgres-3 | | kr2 | inbest | 7 | cloudflared 포함 | | hp2 | default | 5 | anomaly-detect 포함 | @@ -179,9 +180,13 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant) ### kr1 컨테이너 -**default 프로젝트** (4): brokkr (10.100.3.54), heimdall (10.100.3.92), mariadb-2 (10.100.3.64), **postgres-2** (10.100.3.185) +**default 프로젝트** (3): brokkr (10.100.3.54), mariadb-2 (10.100.3.64), **postgres-2** (10.100.3.185) + +**ops 프로젝트** (1): **heimdall** (10.100.3.108, 2026-04-09 tofu 재생성 — 신규 프로젝트, 구 `default/heimdall (10.100.3.92)` 대체) > 이전 정본의 `etcd (10.100.3.7)`는 라이브에 존재하지 않음. K3s kine이 Patroni로 이전된 시점(2026-04-05) 전후에 정리된 것으로 추정. **postgres-2**가 새로 추가됨 (Patroni HA 멤버 추정). +> +> 2026-04-09: heimdall을 `kaffa/ops-agents-tofu/heimdall` 모듈로 재생성. 유저 root→kaffa, 프로젝트 default→ops, 메모리/CPU limit 설정 (8GiB/4core). `syn` 과 동일 패턴. IP 변경 (10.100.3.92 → 10.100.3.108). ### kr2 컨테이너 diff --git a/ops-agents/overview.md b/ops-agents/overview.md index d15d7de..c9544cf 100644 --- a/ops-agents/overview.md +++ b/ops-agents/overview.md @@ -4,6 +4,9 @@ updated: 2026-04-09 tags: [agent, ops, claude-code] --- + + + kappa가 혼자 쓰는 **내부 인프라·운영 자동화 Claude Code 에이전트** 집합. 고객 대상 OpenClaw 에이전트(jp1 `agents` 프로젝트, anvil/stamp/flux 등)와는 완전히 분리된 영역. 외부 클라우드 BM 프로비저닝(jp1 `infra-tool` 의 Tofu API)과도 무관. **명명 규칙**: 북유럽 신화 (Heimdall = 파수꾼, Syn = 문지기, …). OpenClaw 쪽은 대장간/중세 기능 네이밍(anvil/forge/smelt/stamp/…)이라 자연스럽게 분리됨. @@ -12,8 +15,8 @@ kappa가 혼자 쓰는 **내부 인프라·운영 자동화 Claude Code 에이 | 이름 | 호스트 | Incus 프로젝트 | IP | 역할 | 비고 | |------|--------|---------------|-----|------|------| -| **[[heimdall]]** | kr1 | `default` | 10.100.3.92 | 인프라 전반 (K3s, Incus, Longhorn, 스토리지, 네트워크, 일반 서비스) | 수동 생성, tofu 미관리 (브라운필드 import 예정) | -| **[[syn]]** | hp2 | `ops` | 10.100.2.173 | 엣지 레이어 전담 (BunnyCDN, SafeLine WAF, APISIX, Cloudflare 엣지) | 2026-04-09 신규, tofu 관리 (`kaffa/ops-agents-tofu`) | +| **[[heimdall]]** | kr1 | `ops` | 10.100.3.108 | 인프라 전반 (K3s, Incus, Longhorn, 스토리지, 네트워크, 일반 서비스) | 2026-04-09 tofu 재생성 (`kaffa/ops-agents-tofu/heimdall`) | +| **[[syn]]** | hp2 | `ops` | 10.100.2.173 | 엣지 레이어 전담 (BunnyCDN, SafeLine WAF, APISIX, Cloudflare 엣지) | 2026-04-09 신규, tofu 관리 (`kaffa/ops-agents-tofu/syn`) | ## 공통 원칙 @@ -36,9 +39,9 @@ kappa가 혼자 쓰는 **내부 인프라·운영 자동화 Claude Code 에이 ### 통신 경로 - **kappa Mac → Syn**: `tmux send-keys -t 0:0 '...' Enter` (window 0 이 syn-login, ssh 체인 유지) -- **kappa Mac → Heimdall**: `ssh root@10.100.3.92 'tmux send-keys -t heimdall ...'` +- **kappa Mac → Heimdall**: `ssh kaffa@10.100.3.108 'tmux send-keys -t heimdall ...'` - **Syn → kappa Mac**: `ssh kaffa@100.106.245.27 '/opt/homebrew/bin/tmux send-keys -t 0:1 ...'` -- **Syn → Heimdall**: `ssh root@10.100.3.92 'tmux send-keys -t heimdall ...'` +- **Syn → Heimdall**: `ssh kaffa@10.100.3.108 'tmux send-keys -t heimdall ...'` - **Heimdall → Syn**: `ssh kaffa@100.106.245.27 '/opt/homebrew/bin/tmux send-keys -t 0:0 ...'` (경유 필요) Syn 컨테이너는 hp2 subnet routing 덕분에 **Tailscale 설치 없이** tailnet의 다른 노드(kappa Mac 100.106.245.27, heimdall 10.100.3.92 등)에 직접 reachable. 호스트의 tailscale0 interface가 container bridge 로 투명하게 열려있음 — 2026-04-09 실측 확인. @@ -102,8 +105,12 @@ Syn 컨테이너는 hp2 subnet routing 덕분에 **Tailscale 설치 없이** tai ## 배포 관리 ### Heimdall -- 수동 생성 (2026-03 경). 컨테이너 IP 10.100.3.92, kr1 default project. -- Tofu 미관리. 브라운필드 import 예정 (`kaffa/ops-agents-tofu/heimdall/` 향후 추가). +- OpenTofu 관리: [`kaffa/ops-agents-tofu/heimdall`](https://gitea.inouter.com/kaffa/ops-agents-tofu) (2026-04-09 재생성) +- 이전: 2026-03 수동 생성 (root 유저, kr1 default project, IP 10.100.3.92) → 2026-04-09 tofu 재생성 (kaffa 유저, kr1 ops project, IP 10.100.3.108) +- 재생성 시 `~/.claude` (CLAUDE.md, credentials, settings, plugins) 전체 백업/복원 +- 변경 플로우: 로컬 clone → `heimdall/` 에서 `tofu plan` → `tofu apply` +- State: 로컬 `terraform.tfstate` (gitignore, 수동 백업) +- Secrets (`terraform.tfvars`): Vault `secret/apps/gitea` 참조, 커밋 금지 ### Syn - OpenTofu 관리: [`kaffa/ops-agents-tofu`](https://gitea.inouter.com/kaffa/ops-agents-tofu) (2026-04-09 신규)