3.8 KiB
3.8 KiB
tags
| tags | ||||||
|---|---|---|---|---|---|---|
|
24 자동배포 0초 종료 runtime SSOT 복구 계획
작성일: 2026-03-11
상태: draft
목표: Gitea Actions의 24 배포 경로를 현재 runtime SSOT에 다시 맞춰 git push -> 자동 배포를 복구한다.
관련 문서
- 24 자동배포 0초 종료와 runtime SSOT 불일치 이슈
- 24 자동배포 0초 종료와 runtime SSOT 불일치 리서치
- 24서버 robeing runtime workspace-config 단일화
결정
- 이번 문제는
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 구조 재설계
실행 단계
- 51123에서 runner 프로세스, 시작 스크립트, 등록 정보(
/etc/act_runner/.runner)를 기준으로 실제 기동 경로를 확정한다. /home/admin/scripts/start-act-runner.sh기반 재기동 구조가 맞는지 확인하고, 같은 방식으로 runner를 재기동해ps -ef,act_runner.log, Gitea DBaction_runner.last_online이 현재 시각으로 갱신되는지 본다.- backlog가 다시 흐르기 시작하는지
action_task신규 row 생성과 pending queue 감소로 확인한다. rb8001 #677이 backlog를 통과하면action_run_job.task_id가0에서 실제 task id로 바뀌는지 확인한다.rb8001/.gitea/workflows/cicd.yml,.env.deploy,.env.deploy.example가 현재 SSOT(192.168.0.106:51124,/home/admin/robeing/rb8001)를 유지하는지 재확인한다.- workflow가 본문에 진입하면 SSH 접속,
git pull,docker compose down && docker compose up -d --build, health check까지 실제 로그를 확인한다. - backlog를 지나도
rb8001만task_id=0이면#677재실행 또는 새 push 재트리거로 개별 run 상태를 분리 진단한다. - runner 재기동 후에도
0s종료가 계속되면 Gitea의 runner online 상태, dispatch/task 저장 경로, repo-level Actions 설정을 추가로 점검한다. - 복구 후 runner 운영 방식을 systemd 유닛 또는 동등한 자동복구 경로로 정리해, 수동 스크립트만 남는 단일 장애점을 제거한다.
완료 기준
cicd.ymltask가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.106SSOT를 유지한 채 51123 self-hosted runner를 다시 실행 경로에 올려git push -> workflow 본문 실행 -> 24 자동 배포를 복구하는 것이다.