From fa174b75ab4d01d2116ff94196c8c5e724639c8a Mon Sep 17 00:00:00 2001 From: kappa Date: Thu, 9 Apr 2026 17:32:01 +0900 Subject: [PATCH] =?UTF-8?q?ops-agents:=20workspace=20bootstrap=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=ED=99=94=20+=20=EC=8B=9C=ED=81=AC=EB=A6=BF=20env=20?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EB=AC=B8=EC=84=9C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ops-agents/overview.md | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/ops-agents/overview.md b/ops-agents/overview.md index 7081b6e..af0893a 100644 --- a/ops-agents/overview.md +++ b/ops-agents/overview.md @@ -166,12 +166,32 @@ heimdall 은 `--dangerously-skip-permissions` 플래그를 **사용하지 않음 #### tofu repo 워크스페이스 정본 -변경 시 `kaffa/ops-agents-tofu` 하위 워크스페이스 디렉토리에서 작업 → commit/push → 라이브 컨테이너로 scp 동기화: +변경 시 `kaffa/ops-agents-tofu` 하위 워크스페이스 디렉토리에서 작업 → commit/push: -- `heimdall-workspace/{CLAUDE.md, mcp.json, README.md}` → `/home/kaffa/heimdall/{CLAUDE.md, .mcp.json}` -- `syn-workspace/{CLAUDE.md, mcp.json, runbooks/}` → `/home/kaffa/syn/{CLAUDE.md, .mcp.json, <런북들>}` +- `heimdall-workspace/{CLAUDE.md, mcp.json, runbooks/{k3s,incus,longhorn,network,patroni,storage}}` → `/home/kaffa/heimdall/{CLAUDE.md, .mcp.json, runbooks/}` +- `syn-workspace/{CLAUDE.md, mcp.json, runbooks/{bunnycdn,cloudflare,safeline,apisix}}` → `/home/kaffa/syn/{CLAUDE.md, .mcp.json, <런북들 top-level>}` -동기화 절차는 각 `README.md` 참조. 향후 cloud-init runcmd 에서 git clone 으로 자동 전개하도록 개선 예정. +**자동 전개 (2026-04-09 도입)**: cloud-init runcmd 가 부팅 시 ops-agents-tofu repo 를 `git clone --depth=1` 로 가져와 위 매핑대로 `/home/kaffa//` 에 복사 + clone 정리. 신규 컨테이너 provisioning 시 manual scp 단계 0. + +라이브 컨테이너에 워크스페이스 변경 반영 시: +- 직접 수정 + repo 에 commit/push (정합성) +- 또는 repo 변경 후 `scp` 로 sync + +#### 시크릿 환경변수 (heimdall) + +heimdall 은 `.mcp.json` 안에 토큰을 평문으로 두지 않는다. 패턴: + +1. Vault `secret/apps/` 에 토큰 저장 +2. tofu 변수 `_mcp_token` (sensitive) 에 주입 (terraform.tfvars 는 gitignore) +3. cloud-init 이 `/etc/heimdall/env` (root:kaffa 0640) 에 `KEY=value` 형식으로 작성 +4. systemd `heimdall-tmux.service` 가 `EnvironmentFile=/etc/heimdall/env` 로 로드 +5. `.mcp.json` 의 stdio 서버는 `command: "sh", args: ["-c", "exec npx ... --header \"X: $KEY\""]` 로 expansion + +현재 적용 대상: +- `NOCODB_MCP_TOKEN` (Vault `secret/apps/nocodb.mcp_token`) +- `NOCODB_MCP_URL` (Vault `secret/apps/nocodb.mcp_url`) + +syn 은 현재 토큰 필요한 MCP 가 없어 env file 미사용 (필요 시 동일 패턴 적용 가능). - systemd `syn-tmux.service` (enabled, 첫 로그인 후 수동 start) ## 향후 확장 후보