From 6781c5af6a1be78c127ad47fb08360035f0c6ad5 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 9 Mar 2026 21:40:27 +0900 Subject: [PATCH] docs: finalize infra transition research and plans --- journey/README.md | 2 + ...ฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md | 77 ++++++++++++++++ ...4์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md | 18 +++- ...Pํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md | 21 ++--- ...ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md | 87 +++++++++++++++++++ ...0309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md | 17 ++-- ...œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md | 58 ++++++++----- ...”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md | 22 +++-- 8 files changed, 246 insertions(+), 56 deletions(-) create mode 100644 journey/plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md create mode 100644 journey/research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md diff --git a/journey/README.md b/journey/README.md index bb97dab..eb193c4 100644 --- a/journey/README.md +++ b/journey/README.md @@ -47,7 +47,9 @@ - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋Ÿฐํƒ€์ž„ SSOT ๋ถˆ์ผ์น˜ ๋ฆฌ์„œ์น˜](./research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md) - [24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘](./research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md) - [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](./research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๋ฆฌ์„œ์น˜](./research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ณ„ํš](./plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md) - [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](./plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๊ณ„ํš](./plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md) - [24์„œ๋ฒ„ ONNX ๋ชจ๋ธ NAS ๋ฐฑ์—… ์ •๋ฆฌ](./worklog/260309_24์„œ๋ฒ„_onnx๋ชจ๋ธ_nas๋ฐฑ์—…_์ •๋ฆฌ.md) - [24์„œ๋ฒ„ NAS ๋งˆ์šดํŠธ ๋ณต์› ๋ฐ ONNX ๋ฐฑ์—… ์‹คํ–‰](./worklog/260309_24์„œ๋ฒ„_nas๋งˆ์šดํŠธ๋ณต์›_onnx๋ฐฑ์—…์‹คํ–‰.md) diff --git a/journey/plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md b/journey/plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md new file mode 100644 index 0000000..307a4f5 --- /dev/null +++ b/journey/plans/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md @@ -0,0 +1,77 @@ +--- +tags: [infra, workspace, ssot, structure, plans] +--- + +# 260309 23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๊ณ„ํš + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๋ฆฌ์„œ์น˜](../research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ธํ”„๋ผ ๊ตฌ์กฐ์ •๋ฆฌ ์ด์Šˆ](../troubleshooting/260307_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_์ธํ”„๋ผ_๊ตฌ์กฐ์ •๋ฆฌ_์ด์Šˆ.md) +- [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ณ„ํš](./260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](./260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) + +## ๋ฌธ์ œ ์ •์˜ + +- ํ˜„์žฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค ํ•ด์„ ๊ธฐ์ค€์€ `WORKSPACE_ROOT=/home/admin`๋กœ ๊ณ ์ •๋์ง€๋งŒ, ์ผ๋ถ€ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋ฌธ์„œ๋Š” ์•„์ง `infra-config` ๋˜๋Š” ์‚ญ์ œ๋œ ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. +- ๋ชฉํ‘œ๋Š” `23 ์ œ์–ด๋ฉด`, `24 ์‹คํ–‰๋ฉด`, `workspace-config` ๊ณต์šฉ env ๊ตฌ์กฐ๋ฅผ ์‹ค์ œ ์‹คํ–‰ ๊ฒฝ๋กœ๊นŒ์ง€ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. +- ์ด๋ฒˆ ์ž‘์—…์˜ ๋‹ซํž˜ ๊ธฐ์ค€์€ `workspace-config` ๋‹จ์ผํ™”, ๋ฃจํŠธ ์ค‘๋ณต ๋””๋ ‰ํ„ฐ๋ฆฌ ์ •๋ฆฌ ์œ ์ง€, ์‚ญ์ œ๋œ ๊ฒฝ๋กœ ์ฐธ์กฐ ์ •๋ฆฌ๊นŒ์ง€ ํฌํ•จํ•œ๋‹ค. + +## ๊ตฌ์กฐ ๊ฒฐ์ • ๊ณ ์ • + +- `robeing-gateway`๋Š” `auth-server`์™€ ํ•จ๊ป˜ 23 ์„œ๋ฒ„ ์ œ์–ด๋ฉด์— ์œ ์ง€ํ•œ๋‹ค. +- ์ œ์–ด๋ฉด๊ณผ ์‹คํ–‰๋ฉด์„ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ๊ณต์šฉ ์šด์˜๊ฐ’์€ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋งŒ SSOT๋กœ ์‚ฌ์šฉํ•œ๋‹ค. +- ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ •๋ณธ ๋ฃจํŠธ๋Š” `TheGooseCouncil`๋งŒ ๋‚จ๊ธฐ๊ณ , ์ œ๊ฑฐ๋œ `thegoosecouncil`, `external_nas_test`, `tmp_lfs_branch_test`๋Š” ์žฌ๋„์ž…ํ•˜์ง€ ์•Š๋Š”๋‹ค. + +## ์‹คํ–‰ ์ˆœ์„œ + +### 1. ๊ณต์šฉ env ์ฐธ์กฐ๋ฅผ `workspace-config`๋กœ ๋‹จ์ผํ™”ํ•œ๋‹ค + +- `/home/admin/robeing-gateway/docker-compose.yml`์˜ `env_file`์„ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋กœ ๊ต์ฒดํ•œ๋‹ค. +- `/home/admin/infra/scripts/README.md`์˜ ๊ณต์šฉ env ๊ฒฝ๋กœ ์„ค๋ช…๋„ ๊ฐ™์€ ๊ธฐ์ค€์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค. +- ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ `/home/admin/infra-config/*.env` ์ฐธ์กฐ๋Š” 0๊ฑด์ด ๋˜๊ฒŒ ๋งŒ๋“ ๋‹ค. + +### 2. 23 ์ œ์–ด๋ฉด ์„œ๋น„์Šค ๊ธฐ์ค€์„ ๋ช…์‹œ์ ์œผ๋กœ ๊ณ ์ •ํ•œ๋‹ค + +- `robeing-gateway`, `auth-server`๊ฐ€ ๋ชจ๋‘ 23 ์ œ์–ด๋ฉด ์„œ๋น„์Šค๋ผ๋Š” ์ ์„ ๊ด€๋ จ ๊ณ„ํš ๋ฌธ์„œ์™€ ๋ฆฌ์„œ์น˜์—์„œ ๊ฐ™์€ ํ‘œํ˜„์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค. +- `24 ์ „ํ™˜` ๊ณ„ํš์—์„œ๋„ gateway๋ฅผ ์ด์ „ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ผ ์—ฐ๊ฒฐ ๋Œ€์ƒ ์ œ์–ด๋ฉด์œผ๋กœ๋งŒ ๋‹ค๋ฃจ๊ฒŒ ๋งž์ถ˜๋‹ค. + +### 3. ์‚ญ์ œ๋œ ๋ฃจํŠธ ๊ฒฝ๋กœ ์ฐธ์กฐ๋ฅผ ํ˜„์žฌ ์ •๋ณธ ๊ฒฝ๋กœ๋กœ ๊ต์ •ํ•œ๋‹ค + +- `thegoosecouncil`๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜๋Š” ํ•˜์œ„ ๋ฌธ์„œ๋ฅผ `TheGooseCouncil` ๊ธฐ์ค€์œผ๋กœ ๊ต์ •ํ•œ๋‹ค. +- `external_nas_test`, `tmp_lfs_branch_test`๋ฅผ ์ „์ œํ•˜๋Š” ์„ค๋ช…์ด ์žˆ์œผ๋ฉด ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋œ ํ…Œ์ŠคํŠธ ํ”์ ์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค. +- `/home/admin/DOCS`์ฒ˜๋Ÿผ ํ˜„์žฌ ์—†๋Š” ๋ฃจํŠธ ๊ฒฝ๋กœ๋ฅผ ์ „์ œํ•œ ๋ฌธ์„œ๋Š” ์‹ค์ œ ๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜์ • ๋ฒ”์œ„๋ฅผ ํ™•์ •ํ•œ๋‹ค. + +### 4. ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋ฌธ์„œ ๊ฒฝ๋กœ๋ฅผ ํ•จ๊ป˜ ๊ฒ€์ฆํ•œ๋‹ค + +- `rg` ๊ธฐ์ค€ ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ `infra-config/runtime.env`, `infra-config/secrets.env`๊ฐ€ 0๊ฑด์ธ์ง€ ํ™•์ธํ•œ๋‹ค. +- `/home/admin` ์ตœ์ƒ์œ„์— `TheGooseCouncil`๋งŒ ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. +- ์‚ญ์ œ๋œ ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋˜ ๋ฌธ์„œ๊ฐ€ ํ˜„์žฌ ์ •๋ณธ ๊ฒฝ๋กœ๋ฅผ ๋ณด๋„๋ก ๊ต์ •๋๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. + +## ์ฒดํฌ๋ฆฌ์ŠคํŠธ + +- `robeing-gateway/docker-compose.yml`๊ฐ€ `workspace-config`๋งŒ ์ฐธ์กฐํ•œ๋‹ค. +- `infra/scripts/README.md`๊ฐ€ `workspace-config` ๊ธฐ์ค€ ์„ค๋ช…๋งŒ ๋‚จ๊ธด๋‹ค. +- ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ `/home/admin/infra-config/*.env`๊ฐ€ 0๊ฑด์ด๋‹ค. +- `/home/admin` ์ตœ์ƒ์œ„์— `thegoosecouncil`, `external_nas_test`, `tmp_lfs_branch_test`๊ฐ€ ์—†๋‹ค. +- ์‚ญ์ œ๋œ ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฌธ์„œ๋Š” ํ˜„์žฌ ์ •๋ณธ ๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌ๋œ๋‹ค. + +## ๊ฒ€์ฆ ๊ธฐ์ค€ + +- `docker compose config` ๊ธฐ์ค€ `robeing-gateway`๊ฐ€ `workspace-config` ๊ฒฝ๋กœ๋ฅผ ์ฝ๋Š”๋‹ค. +- `rg` ๊ธฐ์ค€ ๋น„๋ฌธ์„œ ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ `infra-config` ์ฐธ์กฐ๊ฐ€ ๋‚จ์ง€ ์•Š๋Š”๋‹ค. +- `find /home/admin -maxdepth 1 -type d` ๊ธฐ์ค€ ์ค‘๋ณต/ํ…Œ์ŠคํŠธ ์ž”์กด ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์žฌ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. +- ๊ด€๋ จ ๋ฌธ์„œ์—์„œ `TheGooseCouncil` ์ •๋ณธ ๊ฒฝ๋กœ์™€ `workspace-config` ์šฉ์–ด๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. + +## ์™„๋ฃŒ ์กฐ๊ฑด + +- 23 ์ œ์–ด๋ฉด ์„œ๋น„์Šค์˜ ๊ณต์šฉ env ์ฐธ์กฐ๊ฐ€ `workspace-config`๋กœ ๋‹จ์ผํ™”๋œ๋‹ค. +- ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ฃจํŠธ ์ค‘๋ณต/ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ •๋ฆฌ๊ฐ€ ๋ฌธ์„œ์™€ ์‹ค์ œ ํŒŒ์ผ์‹œ์Šคํ…œ ๋ชจ๋‘์—์„œ ์ผ์น˜ํ•œ๋‹ค. +- ์‚ญ์ œ๋œ ๊ฒฝ๋กœ์™€ ์˜› SSOT ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ 0๊ฑด์ด๋‹ค. + diff --git a/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md b/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md index e1871b7..d1ee0bd 100644 --- a/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md +++ b/journey/plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md @@ -13,6 +13,7 @@ tags: [infra, 24-server, robeing, production-transition, ssot, plans] ## ๊ด€๋ จ ๋ฌธ์„œ - [Infra Journey](../README.md) - [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](../research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๊ณ„ํš](./260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md) - [260304 51123 ์ž„์‹œ๋ณต๊ตฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ ์กฐ์น˜๋‚ด์—ญ](../troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md) - [260305 23์ž„์‹œ๋ฐฐํฌ env.deploy SSOT ๋ฐ ๋ฐฐํฌ์‹คํŒจ ๊ทผ๋ณธ์›์ธ ํ•ด๊ฒฐ](../troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md) - [24์„œ๋ฒ„ ์šฐ๋ถ„ํˆฌ ํ„ฐ๋ฏธ๋„ ๋ถˆ๊ฐ€, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ ์˜ค๋ฅ˜, python3-apt ๋ณต๊ตฌ ๊ธฐ๋ก](../troubleshooting/260309_24์„œ๋ฒ„_์šฐ๋ถ„ํˆฌํ„ฐ๋ฏธ๋„๋ถˆ๊ฐ€_๋„คํŠธ์›Œํฌ๋Œ€์—ญ์˜ค๋ฅ˜_python3apt๋ณต๊ตฌ.md) @@ -51,17 +52,24 @@ tags: [infra, 24-server, robeing, production-transition, ssot, plans] - `skill-publish` - 24 ์„œ๋ฒ„ ํ”„๋ŸฐํŠธ์—”๋“œ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ™œ์šฉ ์—ฌ๋ถ€ +## ์šด์˜ ๊ฒฐ์ • ๊ณ ์ • + +- `skill-publish`๋Š” ํ˜„์žฌ `/home/admin/robeing` ์‹คํ–‰ ์ž์‚ฐ์— ์—†์œผ๋ฏ€๋กœ 1์ฐจ ์ „ํ™˜ ๋ฒ”์œ„์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. +- `robeing-monitor` ์™ธ๋ถ€ ์ง„์ž…์€ `23 gateway -> 24 robeing-monitor` ๋‹จ์ผ ๊ฒฝ๋กœ๋กœ๋งŒ ๊ณ ์ •ํ•˜๊ณ , ์ง์ ‘ ํฌํŠธ ๋…ธ์ถœ์ด๋‚˜ ๋ณ‘ํ–‰ ๊ฒฝ๋กœ๋ฅผ ๋‘์ง€ ์•Š์Šต๋‹ˆ๋‹ค. +- `robeing-gateway`๋Š” 23 ์„œ๋ฒ„์— ์œ ์ง€ํ•˜๋˜, ๊ณต์šฉ env ์ฐธ์กฐ๋Š” `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋งŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค. +- `auth-server`๋„ ๊ฐ™์€ 23 ์ œ์–ด๋ฉด์— ์œ ์ง€ํ•˜๊ณ , gateway์™€ ๋™์ผํ•œ ๊ณต์šฉ env ๊ธฐ์ค€์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. + ## ์‹คํ–‰ ์ˆœ์„œ ### 1. ๋ฐฐํฌ ๊ธฐ์ค€๊ฐ’์„ ๋จผ์ € 24 ๊ธฐ์ค€์œผ๋กœ ๊ณ ์ •ํ•œ๋‹ค - ๊ฐ ์‹คํ–‰๊ณ„ ์ €์žฅ์†Œ์˜ `.env.deploy`๋ฅผ `192.168.0.106:51124` ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๊พผ๋‹ค. -- `DEPLOY_PROJECT_DIR`๋Š” 24 ์‹ค์ œ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๊ฒŒ ๋งž์ถ˜๋‹ค. - - `skill_email` - - `skill_news` +- `DEPLOY_PROJECT_DIR`๋Š” ํ˜„์žฌ 24 ์‹ค์ œ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๊ฒŒ ์œ ์ง€ํ•œ๋‹ค. + - `skill-email` + - `skill-news` - ๊ธฐํƒ€ ์‹ค์ œ 24 ์ €์žฅ ๊ฒฝ๋กœ - ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์›๊ฒฉ ๊ฒฝ๋กœ๊ฐ€ ๋‚จ์•„ ์žˆ๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋Š” `DEPLOY_PROJECT_DIR` ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์ผํ•œ๋‹ค. -- ํŠนํžˆ `skill-embedding`, `skill-publish`์˜ `ivada_project` ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋จผ์ € ์ œ๊ฑฐํ•œ๋‹ค. +- ์ด๋ฒˆ 1์ฐจ ์ „ํ™˜ ๋ฒ”์œ„ ๋ฐ–์ธ `skill-publish`๋Š” ๋ฐฐํฌ ๊ธฐ์ค€ ๋ณ€๊ฒฝ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ•˜๊ณ , active ์‹คํ–‰ ์ž์‚ฐ๋งŒ ๋จผ์ € 24 ๊ธฐ์ค€์œผ๋กœ ์ „ํ™˜ํ•œ๋‹ค. ### 2. 24 ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„ SSOT๋ฅผ ๋จผ์ € ์ •๋ฆฌํ•œ๋‹ค @@ -76,6 +84,7 @@ tags: [infra, 24-server, robeing, production-transition, ssot, plans] - gateway: `192.168.0.100:8100` - OpenSearch: `192.168.0.100:9200` - 24 ๋‚ด๋ถ€ ์ž๊ธฐ์ฐธ์กฐ๋Š” ์„œ๋น„์Šค ๊ฐ„ localhost ๊ธฐ์ค€๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. +- `admin-dashboard`์˜ 24 ๋Œ€์ƒ URL ๋ชฉ๋ก๋„ `192.168.0.106` ๊ธฐ์ค€์œผ๋กœ ํ•จ๊ป˜ ๊ต์ •ํ•œ๋‹ค. ### 3. 23 ์„œ๋ฒ„ ์ธํ”„๋ผ ์˜์กด ํฌํŠธ๋ฅผ 24 ํ˜„์žฌ IP ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์—ฐ๋‹ค @@ -99,6 +108,7 @@ tags: [infra, 24-server, robeing, production-transition, ssot, plans] ### 5. 23 ๊ฒŒ์ดํŠธ์›จ์ด์™€ 24 ์‹คํ–‰๋ฉด ์—ฐ๊ฒฐ์„ ๋‹ค์‹œ ๊ฒ€์ฆํ•œ๋‹ค - 23 ๊ฒŒ์ดํŠธ์›จ์ด upstream์ด 24 `rb8001`, `robeing-monitor`๋ฅผ ์ •ํ™•ํžˆ ๋ฐ”๋ผ๋ณด๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. +- `robeing-monitor` ์™ธ๋ถ€ ์ง„์ž… ๊ฒฝ๋กœ๋Š” gateway ๊ฒฝ์œ  1๊ฐœ ๊ฒฝ๋กœ๋งŒ ๋‚จ๊ธฐ๊ณ , ๋ณ‘ํ–‰ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ์ œ๊ฑฐํ•œ๋‹ค. - ์™ธ๋ถ€ ์‹ค์„œ๋น„์Šค ๋„๋ฉ”์ธ์—์„œ ํ•ต์‹ฌ ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค. - ๋ฉ”์‹œ์ง€ ํ•ต์‹ฌ ๊ฒฝ๋กœ - ์ด๋ฉ”์ผ ๊ฒฝ๋กœ diff --git a/journey/plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md b/journey/plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md index 55ec1bc..564a708 100644 --- a/journey/plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md +++ b/journey/plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md @@ -8,15 +8,16 @@ tags: [infra, 51123, ip, ssot, runtime, plans] - [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) - [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) - [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) -- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: `0_VALUE`์˜ `writing-principles.md` +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) ## ๊ด€๋ จ ๋ฌธ์„œ - [Infra Journey](../README.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ๊ณผ ๋Ÿฐํƒ€์ž„ SSOT ๋ถˆ์ผ์น˜ ์ด์Šˆ](../troubleshooting/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_๋Ÿฐํƒ€์ž„SSOT๋ถˆ์ผ์น˜_์ด์Šˆ.md) - [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋Ÿฐํƒ€์ž„ SSOT ๋ถˆ์ผ์น˜ ๋ฆฌ์„œ์น˜](../research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๊ณ„ํš](./260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๊ณ„ํš.md) ## ๋ชฉํ‘œ -- 51123 ์ฃผ์†Œ ๊ธฐ์ค€์„ `/home/admin/infra-config/runtime.env`์˜ `HOST_51123=192.168.0.100`์œผ๋กœ ๋‹จ์ผํ™”ํ•œ๋‹ค. +- 51123 ์ฃผ์†Œ ๊ธฐ์ค€์„ `/home/admin/workspace-config/runtime.env`์˜ `HOST_51123=192.168.0.100`์œผ๋กœ ๋‹จ์ผํ™”ํ•œ๋‹ค. - active runtime์—์„œ `192.168.219.45`๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. - ์ฝ”๋“œ ๊ธฐ๋ณธ๊ฐ’๊ณผ compose fallback์—์„œ ๊ณผ๊ฑฐ IP๋ฅผ ์ œ๊ฑฐํ•ด, ์žฌ๋นŒ๋“œ์™€ ๋ณต๊ตฌ ์‹œ์—๋„ ๊ตฌ IP๊ฐ€ ๋‹ค์‹œ ์‚ด์•„๋‚˜์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. @@ -32,10 +33,11 @@ tags: [infra, 51123, ip, ssot, runtime, plans] - `auth-server/app/providers/gmail_passport.py` - `robeing/skill-calendar/services/google_calendar_service.py` - `robeing/admin-dashboard/backend/services/system_service.py` +- `robeing-gateway/docker-compose.yml` -### 3. ์ž”์กด ๋ณต์ œ๋ณธ ๋˜๋Š” ๊ตฌ ๊ฒฝ๋กœ ์ •๋ฆฌ ํŒ๋‹จ ๋Œ€์ƒ -- `ivada_project/robeing-monitor/docker-compose.yml` -- `ivada_project/robeing-monitor/app/core/config.py` +### 3. ๊ฐ™์€ ์ž‘์—… ๋‹จ์œ„์—์„œ ํ•จ๊ป˜ ๊ณ ์ •ํ•  ๊ณต์šฉ env ๊ฒฝ๋กœ +- `workspace-config`๋งŒ ๊ณต์šฉ SSOT๋กœ ์‚ฌ์šฉํ•œ๋‹ค. +- `/home/admin/infra-config/*.env` ์ฐธ์กฐ๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ## ์‹คํ–‰ ์›์น™ - ๊ณผ๊ฑฐ IP `192.168.219.45`๋ฅผ ์ƒˆ ๊ฐ’๊ณผ ๋ณ‘ํ–‰ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. @@ -64,12 +66,10 @@ tags: [infra, 51123, ip, ssot, runtime, plans] - ์ฝ”๋“œ ๊ธฐ๋ณธ๊ฐ’์„ SSOT ๊ธฐ์ค€์œผ๋กœ ๊ต์ฒดํ•˜๊ฑฐ๋‚˜, env ๋ฏธ์ฃผ์ž… ์‹œ ์ฆ‰์‹œ ์‹คํŒจํ•˜๋„๋ก ์ •๋ฆฌํ•œ๋‹ค. - `robeing/admin-dashboard/backend/services/system_service.py` - 51124์—์„œ 51123์œผ๋กœ ์ ‘๊ทผํ•  ๋•Œ ๊ณผ๊ฑฐ IP ํด๋ฐฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ํ˜„์žฌ ๊ธฐ์ค€๊ฐ’๋งŒ ์‚ฌ์šฉํ•˜๊ฒŒ ์ •๋ฆฌํ•œ๋‹ค. +- `robeing-gateway/docker-compose.yml` + - `env_file` ๊ฒฝ๋กœ๋ฅผ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋งŒ ๋ณด๊ฒŒ ๊ต์ฒดํ•œ๋‹ค. -### 3. ์ž”์กด ๋ณต์ œ๋ณธ ์ฒ˜๋ฆฌ ๋ฐฉํ–ฅ ๊ฒฐ์ • -- `ivada_project/robeing-monitor/*`๊ฐ€ ํ˜„์žฌ ์šด์˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋ฉด ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ ์ œ์™ธ๋๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ™•์ธํ•œ๋‹ค. -- ๊ณ„์† ๋ณด์กดํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉด ๊ตฌ IP literal ์ œ๊ฑฐ ๋˜๋Š” ๋ณด๊ด€ ๊ฒฝ๋กœ ๋ถ„๋ฆฌ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. - -### 4. ์žฌ๋ฐฐํฌ์™€ ์žฌ๊ฒ€์ฆ +### 3. ์žฌ๋ฐฐํฌ์™€ ์žฌ๊ฒ€์ฆ - ๋ณ€๊ฒฝ ์„œ๋น„์Šค๋ณ„๋กœ `docker compose down && docker compose up -d --build`๋กœ ์žฌ๊ธฐ๋™ํ•œ๋‹ค. - ์ปจํ…Œ์ด๋„ˆ env, TCP ์—ฐ๊ฒฐ, ํ—ฌ์Šค์ฒดํฌ, ๋กœ๊ทธ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•œ๋‹ค. - `192.168.219.45`๋กœ ํ–ฅํ•˜๋Š” ์—ฐ๊ฒฐ ์‹œ๋„๊ฐ€ ๋‚จ์ง€ ์•Š์•˜๋Š”์ง€ ์žฌ๊ฒ€์ƒ‰ํ•œ๋‹ค. @@ -98,6 +98,7 @@ tags: [infra, 51123, ip, ssot, runtime, plans] ## ์™„๋ฃŒ ํŒ๋‹จ ๊ธฐ์ค€ - active runtime ์ปจํ…Œ์ด๋„ˆ `skill-email`, `skill-calendar`, `data-prepper`๊ฐ€ ๋” ์ด์ƒ `192.168.219.45`๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. - code default์™€ compose fallback์—์„œ ๊ณผ๊ฑฐ IP literal์ด ์ œ๊ฑฐ๋œ๋‹ค. +- ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ `/home/admin/infra-config/*.env` ์ฐธ์กฐ๊ฐ€ 0๊ฑด์ด๊ณ , ๊ณต์šฉ env๋Š” `workspace-config`๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. - TCP ์—ฐ๊ฒฐ, ํ—ฌ์Šค์ฒดํฌ, ๋กœ๊ทธ ์žฌ๊ฒ€์ฆ์—์„œ ๊ณผ๊ฑฐ IP timeout์ด ์žฌํ˜„๋˜์ง€ ์•Š๋Š”๋‹ค. - 51123 ์ฃผ์†Œ ๊ธฐ์ค€์€ `192.168.0.100` ํ•˜๋‚˜๋กœ๋งŒ ์„ค๋ช… ๊ฐ€๋Šฅํ•˜๋‹ค. diff --git a/journey/research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md b/journey/research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md new file mode 100644 index 0000000..8c64b57 --- /dev/null +++ b/journey/research/260309_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_SSOT_๊ตฌ์กฐ์ „ํ™˜_๋ฆฌ์„œ์น˜.md @@ -0,0 +1,87 @@ +--- +tags: [infra, workspace, ssot, structure, research] +--- + +# 260309 23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค SSOT ๊ตฌ์กฐ์ „ํ™˜ ๋ฆฌ์„œ์น˜ + +## ์ƒ์œ„ ์›์น™ +- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) +- [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) +- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) + +## ๊ด€๋ จ ๋ฌธ์„œ +- [Infra Journey](../README.md) +- [23์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์ธํ”„๋ผ ๊ตฌ์กฐ์ •๋ฆฌ ์ด์Šˆ](../troubleshooting/260307_23์„œ๋ฒ„_์›Œํฌ์ŠคํŽ˜์ด์Šค_์ธํ”„๋ผ_๊ตฌ์กฐ์ •๋ฆฌ_์ด์Šˆ.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](./260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md) +- [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ๋Ÿฐํƒ€์ž„ SSOT ๋ถˆ์ผ์น˜ ๋ฆฌ์„œ์น˜](./260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md) + +## ๋ชฉ์  + +- `WORKSPACE_ROOT=/home/admin`๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ๊ตฌ์กฐ SSOT๊ฐ€ ๋‹ซํžˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. +- `infra-config -> workspace-config` ์ „ํ™˜์ด ์‹ค์ œ ์‹คํ–‰ ๊ฒฝ๋กœ, ์Šคํฌ๋ฆฝํŠธ, ๋ฌธ์„œ์—์„œ ์–ด๋””๊นŒ์ง€ ๋๋‚ฌ๋Š”์ง€ ๋ถ„๋ฆฌํ•ด์„œ ๋ด…๋‹ˆ๋‹ค. +- ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ ๋ฌธ์ œ๋ฅผ `์ด๋ฆ„ ๋ณ€๊ฒฝ ์™„๋ฃŒ`๊ฐ€ ์•„๋‹ˆ๋ผ `์‹คํ–‰ ๊ฒฝ๋กœ ์ •ํ•ฉ์„ฑ ์™„๋ฃŒ` ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. + +## Facts + +### 1. ๊ณต์šฉ ์šด์˜๊ฐ’ SSOT ๊ฒฝ๋กœ๋Š” ์ด๋ฏธ `workspace-config`๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค + +- `/home/admin/workspace-config/runtime.env`๊ฐ€ ์กด์žฌํ•˜๊ณ  `WORKSPACE_ROOT=/home/admin`๋ฅผ ํฌํ•จํ•œ๋‹ค. +- `/home/admin/workspace-config/secrets.env`๊ฐ€ ์กด์žฌํ•œ๋‹ค. +- `/home/admin/infra-config` ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. + +### 2. ์ผ๋ถ€ ์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ์ด๋ฏธ ์ƒˆ SSOT๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค + +- `/home/admin/robeing/robeing-monitor/docker-compose.yml`์€ `env_file`๋กœ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. +- `/home/admin/infra/scripts/bin/companyx_external_nas_sync_probe.sh`๋„ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`๋ฅผ ์ฝ๋Š”๋‹ค. +- ๋”ฐ๋ผ์„œ `workspace-config`๋Š” ๋ฌธ์„œ ์šฉ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ ์‹คํ–‰ ๊ฒฝ๋กœ์—์„œ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ด๋‹ค. + +### 3. ์ผ๋ถ€ ์‹คํ–‰ ๊ฒฝ๋กœ์™€ ์„ค๋ช… ๋ฌธ์„œ๋Š” ์•„์ง ์˜› SSOT ์ด๋ฆ„์„ ์ฐธ์กฐํ•œ๋‹ค + +- `/home/admin/robeing-gateway/docker-compose.yml`์€ ์•„์ง `env_file`๋กœ `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. +- `/home/admin/infra/scripts/README.md`๋„ ๋น„๋ฏผ๊ฐ ์šด์˜๊ฐ’๊ณผ ๋ฏผ๊ฐ๊ฐ’ ๊ฒฝ๋กœ๋ฅผ `/home/admin/infra-config/*.env`๋กœ ์„ค๋ช…ํ•œ๋‹ค. +- ์ฆ‰ `workspace-config` ์ „ํ™˜์€ ์ผ๋ถ€ ์‹คํ–‰ ์ž์‚ฐ์—์„œ ๋๋‚ฌ์ง€๋งŒ, ์ „์ฒด ์‹คํ–‰ ๊ฒฝ๋กœ 0๊ฑด ์ƒํƒœ๋Š” ์•„๋‹ˆ๋‹ค. + +### 3-1. `robeing-gateway`์˜ ์—ญํ• ๊ณผ SSOT ๋ฐฉํ–ฅ์€ ๊ณ ์ •๋๋‹ค + +- `robeing-gateway`๋Š” 24 ์‹คํ–‰๋ฉด์œผ๋กœ ์˜ฎ๊ธฐ์ง€ ์•Š๊ณ , `auth-server`์™€ ํ•จ๊ป˜ 23 ์„œ๋ฒ„ ์ œ์–ด๋ฉด์— ์œ ์ง€ํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ ๊ณต์šฉ env ๋‹จ์ผํ™”์˜ ๊ธฐ์ค€์€ `gateway๋ฅผ ์˜ฎ๊ธธ์ง€`๊ฐ€ ์•„๋‹ˆ๋ผ, `23 ์ œ์–ด๋ฉด ์„œ๋น„์Šค๋„ /home/admin/workspace-config/*.env๋งŒ ์ฝ๊ฒŒ ๋งž์ถœ์ง€`๋‹ค. +- ์ด ๊ฒฐ์ •์œผ๋กœ `robeing-gateway`๋Š” ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ SSOT์˜ ์˜ˆ์™ธ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ™์€ SSOT๋ฅผ ๋”ฐ๋ฅด๋Š” 23 ์ œ์–ด๋ฉด ์„œ๋น„์Šค๋กœ ์ •๋ฆฌ๋œ๋‹ค. + +### 4. ์ƒ์œ„ ๋ฌธ์„œ๊ฐ€ ๊ฐ€์ •ํ•œ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ์™€ ํ˜„์žฌ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์•„์ง ์™„์ „ํžˆ ๋งž์ง€ ์•Š๋Š”๋‹ค + +- `/home/admin/DOCS` ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. +- ๊ทธ๋Ÿฐ๋ฐ ์ผ๋ถ€ ๊ธฐ์กด ๋ฌธ์„œ์™€ ๊ธฐ์–ต๋œ ๊ตฌ์กฐ ์„ค๋ช…์€ `/home/admin/DOCS`๋ฅผ ์ „์ œํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ SSOT๋Š” ์‹ค์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •๋ฆฌ๋ผ์•ผ ํ•œ๋‹ค. + +### 5. ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ฃจํŠธ์˜ ์ค‘๋ณต/ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ •๋ฆฌ๋Š” ์ง„ํ–‰๋๋‹ค + +- ํ˜„์žฌ `/home/admin` ์ตœ์ƒ์œ„์—๋Š” `TheGooseCouncil`๋งŒ ๋‚จ์•„ ์žˆ๋‹ค. +- `thegoosecouncil`๋Š” ๊ณตํ†ต ํ•˜์œ„ ์ €์žฅ์†Œ ๊ธฐ์ค€ ์›๊ฒฉ์—์„œ ๋” ๋ฉ€์–ด์ง„ ๋ณต์ œ๋ณธ์œผ๋กœ ํŒ๋‹จ๋ผ ์ œ๊ฑฐ๋๋‹ค. +- `external_nas_test`, `tmp_lfs_branch_test`๋Š” ๊ฐ๊ฐ `Thumbs.db` 1๊ฑด๋งŒ ์žˆ๋˜ ํ…Œ์ŠคํŠธ ์ž”์กด๋ฌผ๊ณผ ๋นˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํ™•์ธ๋ผ ์ œ๊ฑฐ๋๋‹ค. + +## Interpretation + +### 1. `WORKSPACE_ROOT` ๊ณ ์ •์€ ๊ตฌ์กฐ SSOT์˜ ์‹œ์ž‘์ด์ง€ ์™„๋ฃŒ๊ฐ€ ์•„๋‹ˆ๋‹ค + +- `WORKSPACE_ROOT=/home/admin`๊ฐ€ ๋“ค์–ด๊ฐ„ ๊ฒƒ์€ ํ•ด์„ ๊ธฐ์ค€์„ ๊ณ ์ •ํ•œ 1๋‹จ๊ณ„๋‹ค. +- ๊ทธ๋Ÿฌ๋‚˜ ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ ์•„์ง `workspace-config`์™€ `infra-config`๋ฅผ ํ•จ๊ป˜ ์ฐธ์กฐํ•˜๋ฉด, ๊ตฌ์กฐ SSOT๋Š” ๋‹ซํžˆ์ง€ ์•Š๋Š”๋‹ค. + +### 2. ์ด ๋ฌธ์ œ์˜ ๋ณธ์งˆ์€ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ผ ์‹คํ–‰ ๊ฒฝ๋กœ์˜ ๋‹จ์ผํ™”๋‹ค + +- `infra-config`๋ผ๋Š” ์ด๋ฆ„์„ ๋ฌธ์„œ์—์„œ `workspace-config`๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค. +- ์‹ค์ œ compose, ์Šคํฌ๋ฆฝํŠธ, ์šด์˜ README๊ฐ€ ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ๋ณด๊ฒŒ ์ •๋ฆฌ๋ผ์•ผ ๊ตฌ์กฐ SSOT๊ฐ€ ์™„์„ฑ๋œ๋‹ค. + +### 3. ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ SSOT๋Š” ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ •ํ•ฉ์„ฑ๊นŒ์ง€ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค + +- `/home/admin/DOCS`์ฒ˜๋Ÿผ ์‹ค์ œ ์—†๋Š” ๊ฒฝ๋กœ๋ฅผ ์ „์ œํ•œ ๋ฌธ์„œ๊ฐ€ ๋‚จ์•„ ์žˆ์œผ๋ฉด, ์šด์˜์ž๊ฐ€ ๊ตฌ์กฐ๋ฅผ ์ž˜๋ชป ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋‹ค. +- ์ค‘๋ณต ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์™€ ํ…Œ์ŠคํŠธ ์ž”์กด ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ์ •๋ฆฌ๋์ง€๋งŒ, ์ด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•˜์œ„ ๋ฌธ์„œ ๊ฒฝ๋กœ๊นŒ์ง€ ํ•จ๊ป˜ ๊ต์ •๋ผ์•ผ ๊ตฌ์กฐ SSOT๊ฐ€ ๋‹ซํžŒ๋‹ค. + +## Unresolved + +- `robeing-gateway/docker-compose.yml`์™€ `/home/admin/infra/scripts/README.md`๋ฅผ ์–ธ์ œ ๊ฐ™์€ ์ž‘์—… ๋‹จ์œ„๋กœ `workspace-config` ๊ธฐ์ค€์œผ๋กœ ๊ต์ •ํ• ์ง€ ์‹คํ–‰ ์‹œ์ ๋งŒ ๋‚จ์•„ ์žˆ๋‹ค. +- ์‚ญ์ œ๋œ `thegoosecouncil`, `external_nas_test`, `tmp_lfs_branch_test`๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•˜์œ„ ๋ฌธ์„œ๋ฅผ ์–ด๋””๊นŒ์ง€ ํ˜„์žฌ ๊ฒฝ๋กœ๋กœ ๊ต์ •ํ• ์ง€ ๋ฒ”์œ„ ๊ฒฐ์ •์ด ์•„์ง ์—†๋‹ค. + +## ํ•œ ์ค„ ๊ฒฐ๋ก  + +- ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ตฌ์กฐ SSOT๋Š” `WORKSPACE_ROOT` ๊ณ ์ •, ๋ฃจํŠธ ์ค‘๋ณต ์ œ๊ฑฐ, `gateway๋Š” 23 ์ œ์–ด๋ฉด ์œ ์ง€` ๊ฒฐ์ •๊นŒ์ง€๋Š” ๋๋‚ฌ๊ณ , ๋‚จ์€ ์ผ์€ `workspace-config` ์‹คํ–‰ ๋ฐ˜์˜๊ณผ ํ•˜์œ„ ๋ฌธ์„œ ๊ฒฝ๋กœ ๊ต์ •์ด๋‹ค. diff --git a/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md b/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md index f06ccf9..fa03953 100644 --- a/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md +++ b/journey/research/260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md @@ -63,18 +63,17 @@ tags: [infra, 24-server, robeing, operations, ssot, research] - Compose ํŒŒ์ผ ํ™•์ธ ๊ฒฝ๋กœ: - `robeing/rb8001/docker-compose.yml` - `robeing/robeing-monitor/docker-compose.yml` - - `robeing/skill_email/docker-compose.yml` - - `robeing/skill_news/docker-compose.yml` + - `robeing/skill-email/docker-compose.yml` + - `robeing/skill-news/docker-compose.yml` - `robeing/skill-slack/docker-compose.yml` - `robeing/skill-rag-file/docker-compose.yml` - `robeing/skill-calendar/docker-compose.yml` - `robeing/skill-embedding/docker-compose.yml` - - `robeing/skill-publish/docker-compose.yml` - ์ž๋™๋ฐฐํฌ ํ”์  ํ™•์ธ ๊ฒฝ๋กœ: - `robeing/rb8001/.gitea/` - `robeing/robeing-monitor/.gitea/` - - `robeing/skill_email/.gitea/` - - `robeing/skill_news/.gitea/` + - `robeing/skill-email/.gitea/` + - `robeing/skill-news/.gitea/` - `robeing/skill-slack/.gitea/` - `robeing/skill-rag-file/.gitea/` - `robeing/frontend-customer/.gitea/` @@ -84,8 +83,8 @@ tags: [infra, 24-server, robeing, operations, ssot, research] - `robeing/rb8001/docker-compose.yml`: `http://localhost:8001/health` - `robeing/robeing-monitor/docker-compose.yml`: `http://localhost:9024/healthz` -- `robeing/skill_email/docker-compose.yml`: `http://localhost:8501/health` -- `robeing/skill_news/docker-compose.yml`: `http://localhost:8505/health` +- `robeing/skill-email/docker-compose.yml`: `http://localhost:8501/health` +- `robeing/skill-news/docker-compose.yml`: `http://localhost:8505/health` - `robeing/skill-calendar/docker-compose.yml`: `http://localhost:8512/health` - `robeing/skill-embedding/docker-compose.yml`: `http://localhost:8515/healthz` @@ -93,7 +92,8 @@ tags: [infra, 24-server, robeing, operations, ssot, research] - `robeing/AGENTS.md`๋Š” ์•„์ง `192.168.219.52`, `192.168.219.45`, `/home/admin/ivada_project/...`๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. - `robeing/DOCS/book/300_architecture/310_์ „์ฒด_์‹œ์Šคํ…œ_๊ตฌ์กฐ_์ปจํ…Œ์ด๋„ˆ์™€_๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค.md`์™€ `325_robeing_monitor_๋ชจ๋‹ˆํ„ฐ๋ง_์•„ํ‚คํ…์ฒ˜.md`๋„ ๊ณผ๊ฑฐ IP ๊ธฐ์ค€ ์„ค๋ช…์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. -- `/home/admin/workspace-config/runtime.env`๋Š” ํ˜„์žฌ ์ด 24 ์„œ๋ฒ„ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ์กด์žฌํ•˜์ง€ ์•Š์•˜๊ณ , ๋‹น์‹œ์—๋Š” `secrets.env`๋งŒ ๋จผ์ € ์ƒ์„ฑ๋œ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค. +- ํ˜„์žฌ ๊ณต์šฉ ์šด์˜๊ฐ’ ํŒŒ์ผ์€ `/home/admin/workspace-config/runtime.env`, ๋ฏผ๊ฐ๊ฐ’ ํŒŒ์ผ์€ `/home/admin/workspace-config/secrets.env`๋กœ 24 ์„œ๋ฒ„์—๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. +- ๋‹ค๋งŒ ์ด ๋ฌธ์„œ๋Š” ์ž๋ฃŒ ์œ„์น˜๋ฅผ ๋ชจ์œผ๋Š” ๋ฌธ์„œ์ผ ๋ฟ์ด๊ณ , ์‹ค์ œ ์ฐจ๋‹จ ์š”์ธ์€ [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๋ฆฌ์„œ์น˜](./260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md)์—์„œ ๋”ฐ๋กœ ํ™•์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## Interpretation @@ -131,7 +131,6 @@ tags: [infra, 24-server, robeing, operations, ssot, research] ## Unresolved -- 24 ์„œ๋ฒ„ ์ฃผ์†Œ์˜ SSOT ํŒŒ์ผ์ด `workspace-config` ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋‘ ์ฑ„์›Œ์กŒ๋Š”์ง€๋Š” ์ด ๋ฌธ์„œ ์‹œ์ ์— ํ™•์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. - `robeing/AGENTS.md`์™€ `robeing` ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ๊ฐ€ ์ƒˆ ์ฃผ์†Œ/๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ ๊ฐฑ์‹ ๋˜์ง€ ์•Š์•„, ํ˜„์žฌ๋Š” ์ฐธ๊ณ  ๋ฌธ์„œ์ด๋˜ ์ตœ์‹  SSOT๋Š” ์•„๋‹™๋‹ˆ๋‹ค. - ์ž๋™๋ฐฐํฌ ๋ ˆํฌ์™€ ์ˆ˜๋™๋ฐฐํฌ ๋ ˆํฌ ๊ตฌ๋ถ„์€ `robeing/AGENTS.md`์— ์žˆ์œผ๋‚˜, ์‹ค์ œ `.gitea/workflows`์™€ ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š”์ง€ ์„œ๋น„์Šค๋ณ„ ๋Œ€์กฐ๋Š” ์•„์ง ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. diff --git a/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md b/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md index e52e9f0..c2298b2 100644 --- a/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md +++ b/journey/research/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๋ฆฌ์„œ์น˜.md @@ -13,6 +13,7 @@ tags: [infra, 24-server, robeing, production-transition, ssot, research] ## ๊ด€๋ จ ๋ฌธ์„œ - [Infra Journey](../README.md) - [24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘](./260309_24์„œ๋ฒ„_๋กœ๋น™์šด์˜_์ž๋ฃŒ์ˆ˜์ง‘.md) +- [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](../plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md) - [260304 51123 ์ž„์‹œ๋ณต๊ตฌ ์„œ๋น„์Šค ์—ฐ์†์„ฑ ์กฐ์น˜๋‚ด์—ญ](../troubleshooting/260304_51123_์ž„์‹œ๋ณต๊ตฌ_์„œ๋น„์Šค์—ฐ์†์„ฑ_์กฐ์น˜๋‚ด์—ญ.md) - [260305 23์ž„์‹œ๋ฐฐํฌ env.deploy SSOT ๋ฐ ๋ฐฐํฌ์‹คํŒจ ๊ทผ๋ณธ์›์ธ ํ•ด๊ฒฐ](../troubleshooting/260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md) - [24์„œ๋ฒ„ ์šฐ๋ถ„ํˆฌ ํ„ฐ๋ฏธ๋„ ๋ถˆ๊ฐ€, ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ ์˜ค๋ฅ˜, python3-apt ๋ณต๊ตฌ ๊ธฐ๋ก](../troubleshooting/260309_24์„œ๋ฒ„_์šฐ๋ถ„ํˆฌํ„ฐ๋ฏธ๋„๋ถˆ๊ฐ€_๋„คํŠธ์›Œํฌ๋Œ€์—ญ์˜ค๋ฅ˜_python3apt๋ณต๊ตฌ.md) @@ -41,7 +42,7 @@ tags: [infra, 24-server, robeing, production-transition, ssot, research] ### 3. 24 ์„œ๋ฒ„์—๋Š” ์‹คํ–‰ ์ž์‚ฐ์ด ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  Git ์ƒํƒœ๋„ ๊นจ์ง€์ง€ ์•Š์•˜๋‹ค -- 24 ์„œ๋ฒ„์— ๋‹ค์Œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค: `robeing/rb8001`, `robeing/robeing-monitor`, `robeing/skill_email`, `robeing/skill_news`, `robeing/skill-slack`, `robeing/skill-rag-file`, `robeing/skill-calendar`, `robeing/skill-embedding`, `robeing/skill-publish`, `robeing/frontend-customer`, `robeing/frontend-ir-valuation`. +- 24 ์„œ๋ฒ„์— ๋‹ค์Œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค: `robeing/rb8001`, `robeing/robeing-monitor`, `robeing/skill-email`, `robeing/skill-news`, `robeing/skill-slack`, `robeing/skill-rag-file`, `robeing/skill-calendar`, `robeing/skill-embedding`, `robeing/frontend-customer`, `robeing/admin-dashboard`, `robeing/onnx_models`. - 24 ์„œ๋ฒ„ ๊ฐ ์ €์žฅ์†Œ์˜ `git status --short --branch` ๊ฒฐ๊ณผ๋Š” ๋ชจ๋‘ `## main...origin/main`์œผ๋กœ ๊นจ๋—ํ•˜๋‹ค. - ์ฆ‰ 24 ์„œ๋ฒ„๋Š” "์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ ๋ชป ๋„์šฐ๋Š” ์ƒํƒœ"๊ฐ€ ์•„๋‹ˆ๋ผ "์‹คํ–‰ ์ „ํ™˜์ด ์•„์ง ์ ์šฉ๋˜์ง€ ์•Š์€ ์ƒํƒœ"๋‹ค. @@ -54,38 +55,41 @@ tags: [infra, 24-server, robeing, production-transition, ssot, research] - `260305_23์ž„์‹œ๋ฐฐํฌ_envdeploy_ssot_๋ฐ_๋ฐฐํฌ์‹คํŒจ_๊ทผ๋ณธ์›์ธ_ํ•ด๊ฒฐ.md`๋„ `51124 ๋ณต๊ตฌ ์‹œ ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ๊ฐ ๋ ˆํฌ .env.deploy์˜ ๋ฐฐํฌ ๋Œ€์ƒ ๊ฐ’๋งŒ 24 ์„œ๋ฒ„ ๊ฐ’์œผ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋œ๋‹ค`๊ณ  ๊ธฐ๋กํ•œ๋‹ค. - ๋”ฐ๋ผ์„œ ์ง€๊ธˆ ์ž๋™๋ฐฐํฌ๊ฐ€ 24๋กœ ๊ฐ€์ง€ ์•Š๋Š” ์ง์ ‘ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” `.env.deploy`๊ฐ€ ์•„์ง 23 ๊ธฐ์ค€์ด๋ผ๋Š” ์ ์ด๋‹ค. -### 5. 24 ์„œ๋ฒ„์˜ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์™€ 23 ๋ฐฐํฌ ๊ธฐ์ค€ ๊ฒฝ๋กœ๊ฐ€ ์ผ๋ถ€ ๋‹ค๋ฅด๋‹ค +### 5. 24 ์„œ๋ฒ„์˜ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ์™€ 23 ๋ฐฐํฌ ๊ธฐ์ค€ ๊ฒฝ๋กœ๊ฐ€ ํ˜„์žฌ๋Š” ์ผ์น˜ํ•œ๋‹ค - 23 ์„œ๋ฒ„ ์†Œ์Šค ์ €์žฅ์†Œ๋Š” `skill-email`, `skill-news` ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. -- 24 ์„œ๋ฒ„ ์‹ค์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” `skill_email`, `skill_news`๋‹ค. -- ๊ทธ๋Ÿฐ๋ฐ 24 ์„œ๋ฒ„์— ์žˆ๋Š” `skill_email/.env.deploy`, `skill_news/.env.deploy`๋„ ๊ฐ๊ฐ `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-email`, `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-news`๋กœ ์ ํ˜€ ์žˆ๋‹ค. -- ์ฆ‰ 24 ๋ณต๊ท€ ์‹œ ๋‹จ์ˆœํžˆ SSH ๋Œ€์ƒ๋งŒ ๋ฐ”๊พธ๋ฉด ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฐฐํฌ ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ ์‹ค์ œ 24 ๊ฒฝ๋กœ์™€ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. +- 24 ์„œ๋ฒ„ ์‹ค์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋„ `skill-email`, `skill-news`๋‹ค. +- 23 ์„œ๋ฒ„์˜ `.env.deploy` ์—ญ์‹œ ๊ฐ๊ฐ `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-email`, `DEPLOY_PROJECT_DIR=/home/admin/robeing/skill-news`๋กœ ์ ํ˜€ ์žˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ํ˜„์žฌ ๋ฐฐํฌ ์ฐจ๋‹จ ์š”์ธ์€ ๊ฒฝ๋กœ ๋ถˆ์ผ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ, `DEPLOY_SSH_HOST=192.168.219.45`, `DEPLOY_SSH_PORT=51123`์ฒ˜๋Ÿผ ๋ฐฐํฌ ๋Œ€์ƒ์ด ์•„์ง 23 ๊ธฐ์ค€์ด๋ผ๋Š” ์ ์ด๋‹ค. -### 6. 24 ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„ ๊ฐ’์—๋Š” ์•„์ง ๊ณผ๊ฑฐ 23 ์„œ๋ฒ„ ์ฃผ์†Œ์™€ ์‚ญ์ œ๋œ ๊ฒฝ๋กœ๊ฐ€ ๋‚จ์•„ ์žˆ๋‹ค +### 6. 24 ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„ ๊ฐ’์—๋Š” ์•„์ง ๊ณผ๊ฑฐ 23 ์„œ๋ฒ„ ์ฃผ์†Œ๊ฐ€ ๋‚จ์•„ ์žˆ๋‹ค - 24 ์„œ๋ฒ„ `.env` ํ™•์ธ ๊ฒฐ๊ณผ, ์•„๋ž˜ ์„œ๋น„์Šค๋“ค์ด ์•„์ง `192.168.219.45`๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•œ๋‹ค. - `rb8001`: `DATABASE_URL`, `TEST_DATABASE_URL`, `METRICS_DATABASE_URL`, `POSTGRES_CONNECTION_STRING`, `GATEWAY_URL`, `AUTH_SERVER_URL` - `robeing-monitor`: `DATABASE_URL` - - `skill_email`: `DATABASE_URL`, `POSTGRES_CONNECTION_STRING`, `TEST_DATABASE_URL` - - `skill_news`: `DATABASE_URL`, `TEST_DATABASE_URL` + - `skill-email`: `DATABASE_URL`, `POSTGRES_CONNECTION_STRING`, `TEST_DATABASE_URL` + - `skill-news`: `DATABASE_URL`, `TEST_DATABASE_URL` - `skill-slack`: `DATABASE_URL` - `skill-rag-file`: `DATABASE_URL` - `skill-calendar`: `DATABASE_URL` - 24 ์„œ๋ฒ„ compose/workflow์—๋„ ๊ณผ๊ฑฐ๊ฐ’์ด ๋‚จ์•„ ์žˆ๋‹ค. - - `skill_email/docker-compose.yml`: `AUTH_SERVER_URL` fallback์ด `http://192.168.219.45:9000` + - `skill-email/docker-compose.yml`: `AUTH_SERVER_URL` fallback์ด `http://192.168.219.45:9000` - `skill-calendar/docker-compose.yml`: `DATABASE_URL` fallback์ด `postgresql://...@192.168.219.45:5432/main_db` - - `skill-embedding/docker-compose.yml`: ONNX ๋ชจ๋ธ ๋งˆ์šดํŠธ๊ฐ€ `/home/admin/ivada_project/onnx_models` - - 24 ์„œ๋ฒ„ `skill-embedding/.gitea/workflows/deploy.yml`: `/home/admin/ivada_project/skill-embedding` - - 24 ์„œ๋ฒ„ `skill-publish/.gitea/workflows/deploy.yml`: `/home/admin/ivada_project/skill-publish` -- `ivada_project`๋Š” ์ด๋ฏธ ์šด์˜ ๊ฒฝ๋กœ์—์„œ ์ œ๊ฑฐ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ, ์œ„ ๊ฒฝ๋กœ๋Š” 24 ์‹ค์„œ๋น„์Šค ์ „ํ™˜์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. + - `admin-dashboard/backend/services/system_service.py`: `rb8001`, `skill-email`, `skill-news`, `robeing-monitor`, `skill-publish` URL์ด `http://192.168.219.52:*` + - `admin-dashboard/backend/routers/system.py`: `RB8001_URL = "http://192.168.219.52:8001"` + - `admin-dashboard/backend/admin_routes.py`: `RB8001_URL = "http://192.168.219.52:8001"` +- ๋ฐ˜๋ฉด ํ˜„์žฌ `skill-embedding/docker-compose.yml`์˜ ONNX ๋ชจ๋ธ ๊ฒฝ๋กœ๋Š” `/home/admin/robeing/onnx_models`๋กœ ์ด๋ฏธ ๊ต์ •๋ผ ์žˆ๋‹ค. +- ํ˜„์žฌ `/home/admin/robeing` ์•„๋ž˜์—๋Š” `skill-publish` ๋””๋ ‰ํ„ฐ๋ฆฌ๋‚˜ ๋ฐฐํฌ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, `admin-dashboard`์˜ `skill-publish` ํ‘œ๊ธฐ๋Š” ์ž”์กด ์šด์˜ ๋ชฉ๋ก์œผ๋กœ ๋ด์•ผ ํ•œ๋‹ค. -### 7. 24 ์„œ๋ฒ„์˜ `workspace-config` ๊ธฐ์ค€ ํŒŒ์ผ์ด ์•„์ง ์™„์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค +### 7. 24 ์„œ๋ฒ„์˜ `workspace-config` ๊ธฐ์ค€ ํŒŒ์ผ์€ ์กด์žฌํ•˜์ง€๋งŒ, ์ „์ฒด ์‹คํ–‰ ๊ฒฝ๋กœ๊ฐ€ ์•„์ง ์ด๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š”๋‹ค - 24 ์„œ๋ฒ„์—์„œ ๋‹ค์Œ ๊ฒฝ๋กœ ํ™•์ธ ๊ฒฐ๊ณผ: - - `MISSING:/home/admin/workspace-config/runtime.env` + - `EXISTS:/home/admin/workspace-config/runtime.env` - `EXISTS:/home/admin/workspace-config/secrets.env` +- `runtime.env`์—๋Š” `WORKSPACE_ROOT=/home/admin`, `HOST_51123=192.168.0.100`, `ROBEING_DEFAULT_HOST=192.168.0.100`, `MONITOR_URL=http://192.168.0.100:9024`๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค. - ๊ทธ๋Ÿฐ๋ฐ `robeing-monitor/docker-compose.yml`์€ `env_file`๋กœ `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`, `.env`๋ฅผ ํ•จ๊ป˜ ์š”๊ตฌํ•œ๋‹ค. -- ๋”ฐ๋ผ์„œ 24 ์ „ํ™˜ ์ „์—๋Š” `workspace-config/runtime.env`๋ฅผ ๋จผ์ € ์ฑ„์›Œ์•ผ ํ•œ๋‹ค. +- ๋ฐ˜๋ฉด `robeing-gateway/docker-compose.yml`์€ ์•„์ง `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. +- ๋”ฐ๋ผ์„œ `workspace-config` ํŒŒ์ผ ๋ถ€์žฌ ์ด์Šˆ๋Š” ํ•ด์†Œ๋์ง€๋งŒ, ์‹คํ–‰ ๊ฒฝ๋กœ ์ „์ฒด๊ฐ€ ์ƒˆ SSOT๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ •๋ฆฌ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ### 8. 24์—์„œ 23์œผ๋กœ ํ–ฅํ•˜๋Š” ์˜์กด ํฌํŠธ๋Š” ์ผ๋ถ€๋งŒ ์—ด๋ ค ์žˆ๋‹ค @@ -104,25 +108,31 @@ tags: [infra, 24-server, robeing, production-transition, ssot, research] - 24 ์„œ๋ฒ„์— `robeing/onnx_models`, `/mnt/51123data`, `/mnt/51123logs`๊ฐ€ ์กด์žฌํ•œ๋‹ค. - ๋”ฐ๋ผ์„œ `skill-rag-file`์˜ ๋ฌธ์„œ ๊ฒฝ๋กœ์™€ `skill-embedding`์˜ ๋ชจ๋ธ ๊ฒฝ๋กœ๋Š” ์ž์‚ฐ ์ž์ฒด๊ฐ€ ์—†์–ด์„œ ๋ง‰ํžˆ๋Š” ์ƒํ™ฉ์€ ์•„๋‹ˆ๋‹ค. -- ๋‹ค๋งŒ `skill-embedding` compose๊ฐ€ ์‹ค์ œ ์กด์žฌ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ญ์ œ๋œ `ivada_project` ๊ฒฝ๋กœ๋ฅผ ๋ณด๊ณ  ์žˆ์–ด, ๊ตฌ์„ฑ๊ฐ’ ๊ต์ •์ด ํ•„์š”ํ•˜๋‹ค. -### 10. ํ˜„์žฌ ๋ฆฌ์„œ์น˜ ๋ฌธ์„œ `24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘`์€ ์‹คํ–‰ ์ „ํ™˜ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋‹ซ๋Š” ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋‹ค +### 10. 23 ์„œ๋ฒ„์˜ ingress์™€ ์šด์˜ ๋ณด์กฐ ์ฝ”๋“œ์—๋„ ๊ณผ๊ฑฐ 24 ์„œ๋ฒ„ ์ฃผ์†Œ๊ฐ€ ๋‚จ์•„ ์žˆ๋‹ค + +- `/etc/nginx/sites-enabled/default`์˜ `/rb8001/` upstream์€ `proxy_pass http://192.168.219.52:8001/;`๋‹ค. +- `/home/admin/nginx-infra/server-nginx-default`๋„ ๊ฐ™์€ upstream์„ `192.168.219.52:8001`๋กœ ์œ ์ง€ํ•œ๋‹ค. +- `admin-dashboard/backend/services/system_service.py`, `routers/system.py`, `admin_routes.py`๋„ ๋ชจ๋‘ `192.168.219.52` ๊ธฐ์ค€ URL์„ ์‚ฌ์šฉํ•œ๋‹ค. +- ๋”ฐ๋ผ์„œ 24 ์„œ๋ฒ„ ์‹คํ–‰๊ณ„๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์ „์—, 23 ์„œ๋ฒ„ ingress์™€ ์šด์˜ ๋ณด์กฐ ์ฝ”๋“œ๋„ ์ƒˆ 24 IP `192.168.0.106` ๊ธฐ์ค€์œผ๋กœ ํ•จ๊ป˜ ๊ต์ •๋ผ์•ผ ํ•œ๋‹ค. + +### 11. ํ˜„์žฌ ๋ฆฌ์„œ์น˜ ๋ฌธ์„œ `24์„œ๋ฒ„ ๋กœ๋น™ ์šด์˜ ์ž๋ฃŒ ์ˆ˜์ง‘`์€ ์‹คํ–‰ ์ „ํ™˜ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋‹ซ๋Š” ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋‹ค - ํ•ด๋‹น ๋ฌธ์„œ๋Š” ๋ฌธ์„œ/์ž์‚ฐ/์ฐธ๊ณ  ์ˆœ์„œ๋ฅผ ๋ชจ์€ ์ž๋ฃŒ ์ˆ˜์ง‘ ๋ฌธ์„œ๋‹ค. -- ์‹ค์ œ ์ฐจ๋‹จ ์š”์ธ์ธ `23 ๋Œ€์ƒ ์ž๋™๋ฐฐํฌ`, `24 ๋Ÿฐํƒ€์ž„์˜ ๊ณผ๊ฑฐ IP`, `24 missing workspace-config/runtime.env`, `23 UFW/Neo4j ๋ฏธ๊ฐœ๋ฐฉ`, `24 ๊ฒฝ๋กœ ๋ถˆ์ผ์น˜`๋ฅผ ์‹คํ–‰ ์ˆœ์„œ๋กœ ๊ณ ์ •ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. +- ์‹ค์ œ ์ฐจ๋‹จ ์š”์ธ์ธ `23 ๋Œ€์ƒ ์ž๋™๋ฐฐํฌ`, `24 ๋Ÿฐํƒ€์ž„์˜ ๊ณผ๊ฑฐ IP`, `23 ingress/์šด์˜์ฝ”๋“œ์˜ ๊ตฌ 24 IP`, `23 UFW/Neo4j ๋ฏธ๊ฐœ๋ฐฉ`, `workspace-config ๋น„์ ์šฉ ๊ฒฝ๋กœ`๋ฅผ ์‹คํ–‰ ์ˆœ์„œ๋กœ ๊ณ ์ •ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. - ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ๋‹ซ๋Š” ๊ธฐ์ค€ ๋ฆฌ์„œ์น˜๋Š” ๋ณ„๋„๋กœ ํ•„์š”ํ•˜๋‹ค. ## Interpretation - ์ง€๊ธˆ ํ’€๊ณ  ์žˆ๋Š” ์ •ํ™•ํ•œ ๋ฌธ์ œ๋Š” `24 ์„œ๋ฒ„๋ฅผ ์ผค ์ˆ˜ ์žˆ๋А๋ƒ`๊ฐ€ ์•„๋‹ˆ๋ผ, `23 ์ž„์‹œ์šด์˜ ์ค‘์— ๊ตณ์–ด์ง„ ๋ฐฐํฌ/๋Ÿฐํƒ€์ž„/๋ฐฉํ™”๋ฒฝ ๊ธฐ์ค€์„ 24 ํ”„๋กœ๋•์…˜ ๊ตฌ์กฐ๋กœ ๋‹ค์‹œ ๋งž์ถ”๋Š” ๊ฒƒ`์ด๋‹ค. -- ํ˜„์žฌ ์ „ํ™˜์ด ์•ˆ ๋˜๋Š” ์ด์œ ๋Š” ๋‹จ์ผ ์›์ธ์ด ์•„๋‹ˆ๋‹ค. `๋ฐฐํฌ ๋Œ€์ƒ์ด ์•„์ง 23`, `24 ๋Ÿฐํƒ€์ž„์€ ๊ตฌ 23 IP๋ฅผ ์ฐธ์กฐ`, `24 workspace-config/runtime.env ๋ถ€์žฌ`, `23 ์ธํ”„๋ผ ์˜์กด ํฌํŠธ๊ฐ€ ์ƒˆ 24 IP์— ์—ด๋ ค ์žˆ์ง€ ์•Š์Œ`, `์ผ๋ถ€ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์‚ญ์ œ๋œ ivada_project ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ`์ด ๋™์‹œ์— ๊ฒน์ณ ์žˆ๋‹ค. -- ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ณ„ํš ๋ฌธ์„œ๋Š” `24์— docker compose๋ฅผ ํ•œ ๋ฒˆ ์˜ฌ๋ฆฌ๋Š” ์ ˆ์ฐจ`๊ฐ€ ์•„๋‹ˆ๋ผ, `๋ฐฐํฌ SSOT -> 24 ๋Ÿฐํƒ€์ž„ SSOT -> 23 ์ธํ”„๋ผ ํ—ˆ์šฉ ๊ทœ์น™ -> ์„œ๋น„์Šค๋ณ„ ๊ธฐ๋™ ์ˆœ์„œ -> 23 ์ž„์‹œ ์ปจํ…Œ์ด๋„ˆ ํ•ด์ œ`๋ฅผ ํ•œ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค. +- ํ˜„์žฌ ์ „ํ™˜์ด ์•ˆ ๋˜๋Š” ์ด์œ ๋Š” ๋‹จ์ผ ์›์ธ์ด ์•„๋‹ˆ๋‹ค. `๋ฐฐํฌ ๋Œ€์ƒ์ด ์•„์ง 23`, `24 ๋Ÿฐํƒ€์ž„์€ ๊ตฌ 23 IP๋ฅผ ์ฐธ์กฐ`, `23 ingress์™€ ์šด์˜ ๋ณด์กฐ ์ฝ”๋“œ๊ฐ€ ๊ตฌ 24 IP๋ฅผ ์ฐธ์กฐ`, `23 ์ธํ”„๋ผ ์˜์กด ํฌํŠธ๊ฐ€ ์ƒˆ 24 IP์— ์—ด๋ ค ์žˆ์ง€ ์•Š์Œ`, `์ผ๋ถ€ ์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ์•„์ง workspace-config๋ฅผ ์“ฐ์ง€ ์•Š์Œ`์ด ๋™์‹œ์— ๊ฒน์ณ ์žˆ๋‹ค. +- ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ๊ณ„ํš ๋ฌธ์„œ๋Š” `24์— docker compose๋ฅผ ํ•œ ๋ฒˆ ์˜ฌ๋ฆฌ๋Š” ์ ˆ์ฐจ`๊ฐ€ ์•„๋‹ˆ๋ผ, `๋ฐฐํฌ SSOT -> 24 ๋Ÿฐํƒ€์ž„ SSOT -> 23 ingress/์šด์˜์ฝ”๋“œ ๊ต์ • -> 23 ์ธํ”„๋ผ ํ—ˆ์šฉ ๊ทœ์น™ -> ์„œ๋น„์Šค๋ณ„ ๊ธฐ๋™ ์ˆœ์„œ -> 23 ์ž„์‹œ ์ปจํ…Œ์ด๋„ˆ ํ•ด์ œ`๋ฅผ ํ•œ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค. ## Unresolved -- `skill-publish`๋ฅผ ์ด๋ฒˆ 1์ฐจ ์ „ํ™˜ ๋ฒ”์œ„์— ํฌํ•จํ• ์ง€, ์‹คํ–‰๊ณ„ ์„œ๋น„์Šค 1์ฐจ๊ตฐ(`rb8001`, `robeing-monitor`, `skill-email`, `skill-calendar`, `skill-news`, `skill-slack`, `skill-rag-file`, `skill-embedding`) ์ดํ›„ 2์ฐจ๊ตฐ์œผ๋กœ ๋‘˜์ง€๋Š” ์šด์˜ ์šฐ์„ ์ˆœ์œ„ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. -- 23 ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ 24์˜ `rb8001`๊ณผ `robeing-monitor`๋กœ ํ–ฅํ•˜๋Š” upstream ์ตœ์ข…๊ฐ’์ด ํ˜„์žฌ ์–ด๋–ค ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ์ด๋ฒˆ ๋ฆฌ์„œ์น˜์—์„œ๋Š” ๋‹ค์‹œ ์—ด์–ด๋ณด์ง€ ์•Š์•˜๋‹ค. ๋‹ค๋งŒ `260304` ๋ฌธ์„œ์ƒ ์›๋ณต ์‹œ ์žฌ์ ๊ฒ€ ๋Œ€์ƒ์ž„์€ ํ™•์ธ๋œ๋‹ค. +- `skill-publish`์™€ `robeing-monitor` ์™ธ๋ถ€ ์ง„์ž… ๊ณ„์•ฝ์€ [24์„œ๋ฒ„ ์‹ค์„œ๋น„์Šค ์šด์˜์ „ํ™˜ ๊ณ„ํš](../plans/260309_24์„œ๋ฒ„_์‹ค์„œ๋น„์Šค์šด์˜์ „ํ™˜_๊ณ„ํš.md)์—์„œ ๊ฐ๊ฐ `1์ฐจ ๋ฒ”์œ„ ์ œ์™ธ`, `23 gateway ๊ฒฝ์œ  ๋‹จ์ผ ๊ฒฝ๋กœ`๋กœ ๋„˜๊ฒจ์กŒ๋‹ค. +- ๋”ฐ๋ผ์„œ ์ด ๋ฌธ์„œ์— ๋‚จ์€ ๋ฏธํ™•์ •์€ ์‚ฌ์‹ค ๋ถ€์กฑ๋ณด๋‹ค ์‹คํ–‰ ๊ฒ€์ฆ ๋ถ€์กฑ์ด๋ฉฐ, ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๊ฒฐ์ • ๋ณด๊ฐ•์ด ์•„๋‹ˆ๋ผ ๊ณ„ํš ์‹คํ–‰ ํ›„ ์‹ค๊ฒฝ๋กœ ๊ฒ€์ฆ์ด๋‹ค. ## ํ•œ ์ค„ ๊ฒฐ๋ก  -- ์ด๋ฒˆ ๋ฌธ์ œ๋Š” `24 ์„œ๋ฒ„ ๋ณต๊ตฌ`๊ฐ€ ์•„๋‹ˆ๋ผ `23 ์ž„์‹œ ํ”„๋กœ๋•์…˜์„ ๋๋‚ด๊ณ  24 ์‹ค์„œ๋น„์Šค ์šด์˜ ๊ธฐ์ค€์„ ๋‹ค์‹œ ์„ธ์šฐ๋Š” ์ „ํ™˜`์ด๋ฉฐ, ์ด๋ฅผ ๋ง‰๋Š” ์ฐจ๋‹จ ์š”์ธ์€ ์ด๋ฏธ `๋ฐฐํฌ ๋Œ€์ƒ`, `๋Ÿฐํƒ€์ž„ ๊ตฌ IP`, `missing workspace-config/runtime.env`, `23 ์ธํ”„๋ผ ํฌํŠธ`, `ivada_project ์ž”์กด ๊ฒฝ๋กœ`๋กœ ์ขํ˜€์กŒ๋‹ค. +- ์ด๋ฒˆ ๋ฌธ์ œ๋Š” `24 ์„œ๋ฒ„ ๋ณต๊ตฌ`๊ฐ€ ์•„๋‹ˆ๋ผ `23 ์ž„์‹œ ํ”„๋กœ๋•์…˜์„ ๋๋‚ด๊ณ  24 ์‹ค์„œ๋น„์Šค ์šด์˜ ๊ธฐ์ค€์„ ๋‹ค์‹œ ์„ธ์šฐ๋Š” ์ „ํ™˜`์ด๋ฉฐ, ์ด๋ฅผ ๋ง‰๋Š” ์ฐจ๋‹จ ์š”์ธ์€ ์ด๋ฏธ `๋ฐฐํฌ ๋Œ€์ƒ`, `24 ๋Ÿฐํƒ€์ž„ ๊ตฌ IP`, `23 ingress/์šด์˜์ฝ”๋“œ์˜ ๊ตฌ 24 IP`, `23 ์ธํ”„๋ผ ํฌํŠธ`, `workspace-config ๋ฏธ์ ์šฉ ์‹คํ–‰ ๊ฒฝ๋กœ`๋กœ ์ขํ˜€์กŒ๋‹ค. diff --git a/journey/research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md b/journey/research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md index 6b13c12..b04dbf3 100644 --- a/journey/research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md +++ b/journey/research/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ_SSOT๋ถˆ์ผ์น˜_๋ฆฌ์„œ์น˜.md @@ -8,7 +8,7 @@ tags: [infra, 51123, ip, ssot, runtime, research] - [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md) - [Core Infrastructure Principles](../../00_Philosophy/01_PRINCIPLES/Core_Infrastructure_Principles.md) - [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md) -- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: `0_VALUE`์˜ `writing-principles.md` +- ๊ณตํ†ต ์ž‘์„ฑ ์›์น™: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md) ## ๊ด€๋ จ ๋ฌธ์„œ - [Infra Journey](../README.md) @@ -22,11 +22,11 @@ tags: [infra, 51123, ip, ssot, runtime, research] - 2026-03-09 ํ˜„์žฌ 23 ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ๋Š” `robeing-brains`๋‹ค. - `ip -brief addr` ๊ธฐ์ค€ ๋ฌผ๋ฆฌ NIC `enp6s0`์˜ IPv4๋Š” `192.168.0.100/24`๋‹ค. - `ip route` ๊ธฐ์ค€ ๊ธฐ๋ณธ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” `192.168.0.1`์ด๋‹ค. -- `infra-config/runtime.env`์—๋Š” ๋‹ค์Œ ๊ฐ’์ด ๊ธฐ๋ก๋ผ ์žˆ๋‹ค. +- `/home/admin/workspace-config/runtime.env`์—๋Š” ๋‹ค์Œ ๊ฐ’์ด ๊ธฐ๋ก๋ผ ์žˆ๋‹ค. - `HOST_51123=192.168.0.100` - `ROBEING_DEFAULT_HOST=192.168.0.100` - `MONITOR_URL=http://192.168.0.100:9024` -- `infra-config/secrets.env`์—๋Š” `ROBEING_MONITOR_DATABASE_URL=postgresql://robeings:robeings@192.168.0.100:5432/main_db`๊ฐ€ ๊ธฐ๋ก๋ผ ์žˆ๋‹ค. +- `/home/admin/workspace-config/secrets.env`์—๋Š” `ROBEING_MONITOR_DATABASE_URL=postgresql://robeings:robeings@192.168.0.100:5432/main_db`๊ฐ€ ๊ธฐ๋ก๋ผ ์žˆ๋‹ค. ### 2. ๊ณผ๊ฑฐ IP `192.168.219.45`๋Š” ์‹คํ–‰ ๊ฒฝ๋กœ์—๋„ ์•„์ง ๋‚จ์•„ ์žˆ๋‹ค - ๋ฌธ์„œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๊ณผ๊ฑฐ IP๊ฐ€ ๋‚จ์€ ์ฃผ์š” ์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. @@ -36,8 +36,6 @@ tags: [infra, 51123, ip, ssot, runtime, research] - `robeing/skill-calendar/docker-compose.yml` - `robeing/skill-calendar/services/google_calendar_service.py` - `robeing/admin-dashboard/backend/services/system_service.py` - - `ivada_project/robeing-monitor/docker-compose.yml` - - `ivada_project/robeing-monitor/app/core/config.py` - ์ด ์ค‘ `frontend-* vite.config.ts`, `rb8001/.env.deploy.example`, `skill-rag-file/scripts/test_db_page_count.py` ๊ฐ™์€ ํŒŒ์ผ์€ ํ˜„์žฌ ์„œ๋ฒ„ ๋Ÿฐํƒ€์ž„๋ณด๋‹ค ๊ฐœ๋ฐœ/์˜ˆ์‹œ/ํ…Œ์ŠคํŠธ ์„ฑ๊ฒฉ์ด ๊ฐ•ํ•˜๋‹ค. ### 3. ํ˜„์žฌ active runtime์—์„œ ๊ณผ๊ฑฐ IP๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ๋‹ค @@ -87,7 +85,7 @@ tags: [infra, 51123, ip, ssot, runtime, research] - `auth-server`๋Š” compose fallback์— `host.docker.internal:5432`๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ํ˜„์žฌ ์ปจํ…Œ์ด๋„ˆ env๋„ ๊ทธ ๊ฐ’์œผ๋กœ ์ฃผ์ž…๋ผ ์žˆ๋‹ค. - ๋”ฐ๋ผ์„œ `auth-server/app/providers/gmail_passport.py`์˜ `192.168.219.45` ๊ธฐ๋ณธ๊ฐ’์€ ์ฝ”๋“œ fallback ์ž”์กด์ด์ง€๋งŒ, ํ˜„์žฌ ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” ๊ทธ ๊ฒฝ๋กœ๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉ ์ค‘์ด๋ผ๊ณ  ํ™•์ธ๋˜์ง€๋Š” ์•Š์•˜๋‹ค. - 24 ์„œ๋ฒ„์˜ `admin-dashboard` ์ฝ”๋“œ์—๋Š” 23 ์„œ๋ฒ„ fallback ๊ตฌ์กฐ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, 2026-03-09 ํ˜„์žฌ 24 ์„œ๋ฒ„ `docker ps`๋Š” ๋นˆ ์ƒํƒœ์˜€๊ณ  ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋Š” active runtime์œผ๋กœ ํ™•์ธ๋˜์ง€ ์•Š์•˜๋‹ค. -- `ivada_project/robeing-monitor/*`๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ `robeing_monitor` ์ปจํ…Œ์ด๋„ˆ์˜ compose ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ์ž”์กด ๊ตฌ ๊ฒฝ๋กœ๋กœ ๋ณด์ธ๋‹ค. +- ๊ณผ๊ฑฐ `ivada_project` ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค์—์„œ ์ด๋ฏธ ์ œ๊ฑฐ๋ผ, ์ด๋ฒˆ ๋ฆฌ์„œ์น˜ ๋ฒ”์œ„์—์„œ๋Š” active ์‹คํ–‰ ๊ฒฝ๋กœ ํ›„๋ณด์—์„œ ์ œ์™ธํ•œ๋‹ค. ### 6. active runtime์˜ ์ฃผ์ž… ์›์ฒœ๊ณผ ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค - `skill-email` @@ -102,6 +100,12 @@ tags: [infra, 51123, ip, ssot, runtime, research] - ํ˜„์žฌ active runtime ์›์ฒœ: `host.docker.internal:5432` - ๋ณด์กฐ ์ž”์กด: `gmail_passport.py` code default +### 7. ๊ณต์šฉ SSOT ์ด๋ฆ„์€ ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ ์ผ๋ถ€ ์‹คํ–‰ ๊ฒฝ๋กœ๋Š” ์•„์ง ์˜› ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค +- `/home/admin/robeing-gateway/docker-compose.yml`์€ ์•„์ง `env_file`๋กœ `/home/admin/infra-config/runtime.env`, `/home/admin/infra-config/secrets.env`๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. +- ํ˜„์žฌ `/home/admin/infra-config`๋Š” ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด compose๋Š” ์ง€๊ธˆ ์ƒํƒœ ๊ทธ๋Œ€๋กœ๋Š” ๊ณต์šฉ SSOT๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๋‹ค. +- ๋‹ค๋งŒ `robeing-gateway` ์ž์ฒด๋Š” 24๋กœ ์˜ฎ๊ธฐ๋Š” ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ผ 23 ์„œ๋ฒ„ ์ œ์–ด๋ฉด์— ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐฉํ–ฅ์ด ๊ณ ์ •๋๋‹ค. +- ๋”ฐ๋ผ์„œ 51123 ๊ตฌ IP ๋ฌธ์ œ๋Š” ๊ฐ’ ์น˜ํ™˜ ๋ฌธ์ œ์ด๋ฉด์„œ ๋™์‹œ์— `workspace-config` ๋‹จ์ผํ™”๊ฐ€ ์•„์ง ๋๋‚˜์ง€ ์•Š์€ ๊ตฌ์กฐ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•˜๋‹ค. + ## Interpretation ### 1. ๋ฌธ์ œ๋Š” โ€œ๋ฌธ์„œ ์ž”์กดโ€์ด ์•„๋‹ˆ๋ผ โ€œ์‹คํ–‰ ์ค‘ ์„œ๋น„์Šค๊ฐ€ ๊ณผ๊ฑฐ IP๋ฅผ ์‹ค์ œ ์‚ฌ์šฉ ์ค‘โ€์ธ ์ƒํƒœ๋‹ค @@ -109,7 +113,7 @@ tags: [infra, 51123, ip, ssot, runtime, research] - ์ด ์„ธ ๊ฒฝ๋กœ๋Š” ๋‹จ์ˆœ ์ž”์กด ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ, ์‹ค์ œ ์—ฐ๊ฒฐ ์‹œ๋„์™€ ์‹ค์ œ timeout ๋กœ๊ทธ๋กœ ๊ฒ€์ฆ๋œ active ์žฅ์•  ๊ฒฝ๋กœ๋‹ค. ### 2. SSOT๋Š” ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ active runtime๊นŒ์ง€ ์น˜ํ™˜๋˜์ง€ ์•Š์•˜๋‹ค -- `infra-config/runtime.env`์™€ `secrets.env`๋Š” ์ด๋ฏธ `192.168.0.100`์œผ๋กœ ์ •๋ฆฌ๋ผ ์žˆ๋‹ค. +- `/home/admin/workspace-config/runtime.env`์™€ `secrets.env`๋Š” ์ด๋ฏธ `192.168.0.100`์œผ๋กœ ์ •๋ฆฌ๋ผ ์žˆ๋‹ค. - ๋ฐ˜๋ฉด host network ๊ธฐ๋ฐ˜ compose์™€ ๊ฐœ๋ณ„ ์ฝ”๋“œ ๊ธฐ๋ณธ๊ฐ’์€ ์˜ˆ์ „ IP๋ฅผ ์—ฌ์ „ํžˆ ๋ณด์กดํ•˜๊ณ  ์žˆ์–ด, SSOT๊ฐ€ โ€œ๋ฌธ์„œ/๊ณต์šฉ envโ€๊นŒ์ง€๋งŒ ์ ์šฉ๋˜๊ณ  โ€œ์‹คํ–‰ ๊ฒฝ๋กœโ€๊นŒ์ง€ ๋‚ด๋ ค์˜ค์ง€ ๋ชปํ–ˆ๋‹ค. ### 3. ์ง์ ‘ ์›์ธ์€ host network ์„œ๋น„์Šค์˜ fallback ๊ตฌ์กฐ์™€ ๊ฐœ๋ณ„ ๊ธฐ๋ณธ๊ฐ’ ๋ถ„์‚ฐ์ด๋‹ค @@ -128,8 +132,8 @@ tags: [infra, 51123, ip, ssot, runtime, research] - ๋”ฐ๋ผ์„œ ๋‹ซํž˜ ์กฐ๊ฑด์€ `ํ˜„์žฌ ์ฃผ์ž… ์›์ฒœ ์ œ๊ฑฐ + fallback ์ œ๊ฑฐ + ์žฌ๊ฒ€์ฆ`์˜ 3๋‹จ๊ณ„์—ฌ์•ผ ํ•œ๋‹ค. ## Unresolved -- `admin-dashboard`์˜ 23 ์„œ๋ฒ„ fallback ์ฃผ์†Œ๋Š” ํ˜„์žฌ ๋น„์‹คํ–‰ ์ƒํƒœ์ด์ง€๋งŒ, ์ฐจํ›„ 24 ์„œ๋ฒ„์—์„œ ๋‹ค์‹œ ๋ฐฐํฌ๋  ๋•Œ SSOT๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฃผ์ž…ํ• ์ง€ ๊ฒฐ์ •๋˜์ง€ ์•Š์•˜๋‹ค. -- `ivada_project/robeing-monitor/*`๊ฐ€ ์™„์ „ํžˆ ํ๊ธฐ ๋Œ€์ƒ์ธ์ง€, ๋น„์ƒ ๋ณต๊ตฌ ๊ฒฝ๋กœ๋กœ ๋‚จ๊ธธ์ง€ ์šด์˜ ๊ฒฐ์ •์ด ์•„์ง ์—†๋‹ค. +- `robeing-gateway/docker-compose.yml`์˜ `workspace-config` ์ „ํ™˜์€ [51123 ๊ตฌ IP ํ•˜๋“œ์ฝ”๋”ฉ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ๊ฑฐ ๊ณ„ํš](../plans/260309_51123_๊ตฌIPํ•˜๋“œ์ฝ”๋”ฉ_์‹คํ–‰๊ฒฝ๋กœ์ œ๊ฑฐ_๊ณ„ํš.md)์— ํฌํ•จ๋ผ ๋” ์ด์ƒ ๊ฒฐ์ • ๋ฏธํ™•์ •์ด ์•„๋‹ˆ๋‹ค. +- ํ˜„์žฌ ๋‚จ์€ ๋ฏธํ™•์ •์€ `admin-dashboard`๋ฅผ 24์—์„œ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•  ๋•Œ SSOT๋ฅผ ์–ด๋–ค env ๊ฒฝ๋กœ๋กœ ์ฃผ์ž…ํ• ์ง€์˜ ๊ตฌํ˜„ ๋ฐฉ์‹์ด๋ฉฐ, ์ด ํ•ญ๋ชฉ์€ active runtime ๋ฌธ์ œ๋ณด๋‹ค ํ›„์ˆœ์œ„๋‹ค. ## ์ƒ์œ„ ์›์น™/๊ทผ๊ฑฐ ๋ฌธ์„œ ์—ฐ๊ฒฐ - [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md)