docs: record 24 deploy ssot mismatch issue

This commit is contained in:
Claude 2026-03-11 19:08:28 +09:00
parent 7789f0b4ec
commit 1ad0a2c5ad
4 changed files with 118 additions and 0 deletions

View File

@ -44,6 +44,7 @@
- [260308 env backup git tracking exposure 및 차단조치](./troubleshooting/260308_env_backup_git_tracking_exposure_및_차단조치.md)
- [24서버 우분투 터미널 불가, 네트워크 대역 오류, python3-apt 복구 기록](./troubleshooting/260309_24서버_우분투터미널불가_네트워크대역오류_python3apt복구.md)
- [23 gateway MONITOR_URL 구주소 잔존으로 24 monitor 프록시 실패 복구](./troubleshooting/260310_23gateway_monitor_url_구주소잔존_24monitor프록시실패_복구.md)
- [24 자동배포 0초 종료와 runtime SSOT 불일치 이슈](./troubleshooting/260311_24자동배포_0초종료_runtime_ssot불일치_이슈.md)
- [51123 포트경계 복잡성 및 진입구조불일치 이슈](./troubleshooting/260311_51123_포트경계_복잡성_및_진입구조불일치_이슈.md)
- [Gitea git credential helper 표준화](./troubleshooting/260309_gitea_git_credential_helper_표준화.md)
- [23서버 워크스페이스 인프라 구조정리 이슈](./troubleshooting/260307_23서버_워크스페이스_인프라_구조정리_이슈.md)
@ -57,8 +58,10 @@
- [24서버 실서비스 운영전환 리서치](./research/260309_24서버_실서비스운영전환_리서치.md)
- [23서버 워크스페이스 SSOT 구조전환 리서치](./research/260309_23서버_워크스페이스_SSOT_구조전환_리서치.md)
- [51123 포트 진입점 프로젝트 경계 리서치](./research/260310_51123_포트_진입점_프로젝트경계_리서치.md)
- [24 자동배포 0초 종료와 runtime SSOT 불일치 리서치](./research/260311_24자동배포_0초종료_runtime_ssot불일치_리서치.md)
- [51123 구 IP 하드코딩 실행 경로 제거 계획](./plans/260309_51123_구IP하드코딩_실행경로제거_계획.md)
- [24서버 실서비스 운영전환 계획](./plans/260309_24서버_실서비스운영전환_계획.md)
- [24 자동배포 0초 종료 runtime SSOT 복구 계획](./plans/260311_24자동배포_0초종료_runtime_ssot복구_계획.md)
- [23서버 워크스페이스 SSOT 구조전환 계획](./plans/260309_23서버_워크스페이스_SSOT_구조전환_계획.md)
- [24서버 ONNX 모델 NAS 백업 정리](./worklog/260309_24서버_onnx모델_nas백업_정리.md)
- [23제어면 gateway workspace-config 단일화](./worklog/260309_23제어면_gateway_workspace_config_단일화.md)

View File

@ -0,0 +1,43 @@
---
tags: [infra, gitea-actions, deploy, 24-server, runtime, plans]
---
# 24 자동배포 0초 종료 runtime SSOT 복구 계획
**작성일**: 2026-03-11
**상태**: draft
**목표**: Gitea Actions의 24 배포 경로를 현재 runtime SSOT에 다시 맞춰 `git push -> 자동 배포`를 복구한다.
## 관련 문서
- [24 자동배포 0초 종료와 runtime SSOT 불일치 이슈](../troubleshooting/260311_24자동배포_0초종료_runtime_ssot불일치_이슈.md)
- [24 자동배포 0초 종료와 runtime SSOT 불일치 리서치](../research/260311_24자동배포_0초종료_runtime_ssot불일치_리서치.md)
- [24서버 robeing runtime workspace-config 단일화](../worklog/260310_24서버_robeing_runtime_workspace_config_단일화.md)
## 결정
- 이번 문제는 `rb8001` 코드가 아니라 `배포 인프라 경로` 문제로 다룬다.
- 따라서 수정 우선순위는 `workflow -> secret/variable -> SSH 검증 -> task 로그` 순서다.
## 범위
- 포함:
- 24 배포 대상 host/port/path SSOT 확인
- Gitea Actions secret/variable 교정
- `cicd.yml` 하드코딩 경로 제거 또는 SSOT 기준 교정
- 실제 push 기반 자동 배포 재검증
- 제외:
- 애플리케이션 기능 수정
- 24 runtime.env/secrets.env 구조 재설계
## 실행 단계
1. `rb8001/.gitea/workflows/cicd.yml`의 deploy host/port/path 참조를 확인한다.
2. Gitea의 `SSH_HOST_51124`, 포트, 배포 경로 관련 secret/variable이 `192.168.0.106` 기준과 일치하는지 확인한다.
3. 23 제어면에서 같은 값으로 24 실행면 SSH 접속이 실제 되는지 검증한다.
4. 하드코딩 값이 있으면 제거하고 `DEPLOY_PROJECT_DIR` 또는 단일 기준 변수로 맞춘다.
5. 테스트 커밋 또는 재실행으로 Actions task가 실제 실행되고, 24 서버 컨테이너가 재시작되는지 검증한다.
## 완료 기준
- `cicd.yml` task가 `0s` 종료가 아니라 실제 실행 로그를 남긴다.
- `git push origin main` 후 24 서버 `rb8001` 컨테이너가 자동 재시작된다.
- 수동 배포 없이도 `docker ps`, 헬스체크, 최신 커밋 반영이 확인된다.
## 한 줄 결론
- 목표는 `24=192.168.0.106` SSOT를 Actions 배포 경로까지 일치시켜 자동 배포를 다시 신뢰 가능한 상태로 복구하는 것이다.

View File

@ -0,0 +1,40 @@
---
tags: [infra, gitea-actions, deploy, 24-server, runtime, research]
---
# 24 자동배포 0초 종료와 runtime SSOT 불일치 리서치
## 관련 문서
- [24 자동배포 0초 종료와 runtime SSOT 불일치 이슈](../troubleshooting/260311_24자동배포_0초종료_runtime_ssot불일치_이슈.md)
- [24서버 robeing runtime workspace-config 단일화](../worklog/260310_24서버_robeing_runtime_workspace_config_단일화.md)
- [24서버 우분투 터미널 불가, 네트워크 대역 오류, python3-apt 복구 기록](../troubleshooting/260309_24서버_우분투터미널불가_네트워크대역오류_python3apt복구.md)
- [23임시배포 env.deploy SSOT 및 배포실패 근본원인 해결](../troubleshooting/260305_23임시배포_envdeploy_ssot_및_배포실패_근본원인_해결.md)
## 목적
- 이번 자동 배포 `0s` 종료를 `애플리케이션 문제`가 아니라 `인프라 배포 경로 SSOT 불일치` 관점에서 닫기 위한 확인 포인트를 정리한다.
## 확인된 SSOT
- 24 실행 서버 기준 주소: `192.168.0.106`
- 과거 24 주소: `192.168.219.52` 사용 금지
- 24 실행면 공통 런타임 값 기준: `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`
- 배포 경로 기준: 서비스별 하드코딩이 아니라 workflow 변수/secret의 단일 기준 사용
## 이번 문제에 가장 가까운 원인 후보
1. `SSH_HOST_51124` 또는 대응 secret/variable이 아직 구 IP를 가리킨다.
2. SSH 포트가 현재 실제 접속 규칙과 어긋난다.
3. workflow가 `DEPLOY_PROJECT_DIR` 대신 오래된 절대경로를 사용한다.
4. runner는 뜨지만 실제 task가 시작 조건을 못 맞춰 즉시 종료된다.
## 이번 이슈에서 중요한 해석
- 수동 배포가 같은 서버에서 정상 성공했기 때문에 `rb8001` 코드, Dockerfile, compose 자체가 주원인일 가능성은 낮다.
- 따라서 우선순위는 `workflow 정의`, `Actions secret/variable`, `23 -> 24 SSH 대상값` 검증이다.
- 기존 인프라 문서와도 일치하게, 이런 배포 실패는 대개 애플리케이션보다 `경로/권한/런타임 값`의 단일 기준 붕괴에서 발생한다.
## 닫힘에 필요한 최소 확인
- `cicd.yml`의 실제 deploy host/port/path 참조값
- Gitea Actions secret/variable의 현재값이 24 SSOT와 일치하는지
- 23 제어면에서 24 실행면으로 SSH가 실제 성공하는지
- task가 왜 `0s`로 끝났는지 runner/task 로그 확인
## 결론
- 현재 가장 강한 가설은 `24 runtime SSOT는 192.168.0.106으로 정리됐지만, 자동 배포 경로 일부는 아직 그 기준으로 완전히 수렴하지 않았다`는 것이다.

View File

@ -0,0 +1,32 @@
---
tags: [infra, gitea-actions, deploy, 24-server, runtime, troubleshooting]
---
# 24 자동배포 0초 종료와 runtime SSOT 불일치 이슈
## 관련 문서
- [24서버 robeing runtime workspace-config 단일화](../worklog/260310_24서버_robeing_runtime_workspace_config_단일화.md)
- [24서버 우분투 터미널 불가, 네트워크 대역 오류, python3-apt 복구 기록](./260309_24서버_우분투터미널불가_네트워크대역오류_python3apt복구.md)
- [23임시배포 env.deploy SSOT 및 배포실패 근본원인 해결](./260305_23임시배포_envdeploy_ssot_및_배포실패_근본원인_해결.md)
## 문제
- `rb8001` 최신 커밋 푸시 후 Gitea Actions `cicd.yml``0s`로 종료되고 자동 배포가 실제로 수행되지 않았다.
- 같은 시점에 24 실행 서버 `rb8001` 컨테이너는 재시작되지 않았고, 수동 `docker compose down && docker compose up -d --build` 후에만 코드가 반영됐다.
## 확인된 사실
- 현재 24 실행 서버의 runtime SSOT는 `192.168.0.106`이다.
- 과거 24 주소 `192.168.219.52`는 런타임과 영구 설정 모두에서 제거돼야 하는 대상으로 이미 정리돼 있다.
- 24 실행면의 공용 런타임 값은 `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env`가 SSOT다.
- 기존 인프라 문서상 배포 실패의 대표 원인은 `DEPLOY_PROJECT_DIR` 같은 단일 기준을 안 쓰고 서비스별 하드코딩 경로/값을 남긴 경우였다.
- 이번 건은 자동 배포가 실행되지 않았지만, 같은 서버에서 수동 배포는 정상 성공했다.
## 현재 해석
- 애플리케이션 코드 자체 문제보다는 `Gitea Actions -> 24 배포 경로`의 SSOT 불일치 가능성이 높다.
- 특히 `workflow secret/host/port/path` 중 하나 이상이 현재 24 runtime SSOT(`192.168.0.106`, 올바른 SSH 포트, 실제 배포 경로)와 어긋났을 가능성이 크다.
## 직접 영향
- `git push origin main`이 배포 완료를 의미하지 않게 된다.
- 운영자가 수동 배포로 개입해야 하므로 배포 재현성과 추적성이 깨진다.
## 한 줄 결론
- 이번 자동 배포 실패는 `24 실행면 runtime SSOT``Gitea Actions 배포 경로`가 다시 어긋났을 가능성이 높은 상태다.