DOCS/journey/plans/260311_24자동배포_0초종료_runtime_ssot복구_계획.md

3.8 KiB

tags
tags
infra
gitea-actions
deploy
24-server
runtime
plans

24 자동배포 0초 종료 runtime SSOT 복구 계획

작성일: 2026-03-11 상태: draft 목표: Gitea Actions의 24 배포 경로를 현재 runtime SSOT에 다시 맞춰 git push -> 자동 배포를 복구한다.

관련 문서

결정

  • 이번 문제는 rb8001 코드가 아니라 배포 인프라 경로 + 51123 runner 실행층 문제로 다룬다.
  • c7bca94.env.deploy와 예시 파일은 이미 SSOT에 맞춰졌으므로, 이제 수정 우선순위는 runner 실행 복구 -> dispatch/task 로그 확인 -> workflow 본문 재진입 검증 -> 필요 시 secret/variable화 순서다.

범위

  • 포함:
    • 51123 self-hosted runner 기동 상태 복구
    • runner 시작 방식과 운영 기준(systemd vs script) 정리
    • 최신 #677과 같은 0s 종료 run의 dispatch/task fetch 경로 확인
    • 24 배포 대상 host/port/path SSOT 확인
    • 필요 시 Gitea Actions secret/variable 교정
    • 실제 push 기반 자동 배포 재검증
  • 제외:
    • 애플리케이션 기능 수정
    • 24 runtime.env/secrets.env 구조 재설계

실행 단계

  1. 51123에서 runner 프로세스, 시작 스크립트, 등록 정보(/etc/act_runner/.runner)를 기준으로 실제 기동 경로를 확정한다.
  2. /home/admin/scripts/start-act-runner.sh 기반 재기동 구조가 맞는지 확인하고, 같은 방식으로 runner를 재기동해 ps -ef, act_runner.log, Gitea DB action_runner.last_online이 현재 시각으로 갱신되는지 본다.
  3. backlog가 다시 흐르기 시작하는지 action_task 신규 row 생성과 pending queue 감소로 확인한다.
  4. rb8001 #677이 backlog를 통과하면 action_run_job.task_id0에서 실제 task id로 바뀌는지 확인한다.
  5. rb8001/.gitea/workflows/cicd.yml, .env.deploy, .env.deploy.example가 현재 SSOT(192.168.0.106:51124, /home/admin/robeing/rb8001)를 유지하는지 재확인한다.
  6. workflow가 본문에 진입하면 SSH 접속, git pull, docker compose down && docker compose up -d --build, health check까지 실제 로그를 확인한다.
  7. backlog를 지나도 rb8001task_id=0이면 #677 재실행 또는 새 push 재트리거로 개별 run 상태를 분리 진단한다.
  8. runner 재기동 후에도 0s 종료가 계속되면 Gitea의 runner online 상태, dispatch/task 저장 경로, repo-level Actions 설정을 추가로 점검한다.
  9. 복구 후 runner 운영 방식을 systemd 유닛 또는 동등한 자동복구 경로로 정리해, 수동 스크립트만 남는 단일 장애점을 제거한다.

완료 기준

  • cicd.yml task가 0s 종료가 아니라 checkout 이후 실제 실행 로그를 남긴다.
  • Gitea DB 기준 action_run_job.task_id != 0, action_task 신규 row 생성, action_runner.last_online 현재 시각 갱신이 확인된다.
  • backlog가 실제로 감소하고, rb8001 #677도 queue 대기에서 task 실행 상태로 전이된다.
  • git push origin main 후 24 서버 rb8001 컨테이너가 자동 재시작된다.
  • 수동 배포 없이도 docker ps, 헬스체크, 최신 커밋 반영이 확인된다.

한 줄 결론

  • 목표는 24=192.168.0.106 SSOT를 유지한 채 51123 self-hosted runner를 다시 실행 경로에 올려 git push -> workflow 본문 실행 -> 24 자동 배포를 복구하는 것이다.