4.2 KiB
4.2 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에 맞춰졌고,github_deploy공개키를 24authorized_keys에 반영해 수동 SSH 인증도 복구됐다.- 따라서 남은 우선순위는
runner 실행 복구 확인 -> deploy key 인증 유지 확인 -> workflow 본문 재진입 검증 -> 24에서 최종 닫힘/worklog 작성순서다.
범위
- 포함:
- 51123 self-hosted runner 기동 상태 복구
- runner 시작 방식과 운영 기준(systemd vs script) 정리
- 최신
#677과 같은0s종료 run의 dispatch/task fetch 경로 확인 - 24 배포 대상 host/port/path SSOT 확인
- 23 runner deploy key와 24
authorized_keys정합성 확인 - 실제 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/.gitea/workflows/cicd.yml,.env.deploy,.env.deploy.example가 현재 SSOT(192.168.0.106:51124,/home/admin/robeing/rb8001)를 유지하고,DEPLOY_SSH_KEY_PATH=/home/admin/.ssh/github_deploy가 실제 운영 키와 일치하는지 재확인한다.- 24
admin ~/.ssh/authorized_keys에github_deploy공개키가 유지되는지 확인하고, 51123에서ssh -i /home/admin/.ssh/github_deploy -p 51124 admin@192.168.0.106 'echo SSH_OK'재검증을 남긴다. rb8001을 단독으로 다시 실행해action_run_job.task_id가 실제 task id로 바뀌는지,Test SSH Connection을 넘어Deploy to Target Server까지 진입하는지 확인한다.- workflow가 본문에 진입하면
git pull,docker compose down && docker compose up -d --build, health check까지 실제 로그를 확인한다. - 복구 후 닫힘 판단과 worklog 작성은 24 서버에서 실제 배포 성공 근거를 붙여 마무리한다.
- runner 재기동 후에도 유사 증상이 반복되면 Gitea runner online 상태, dispatch/task 저장 경로, repo-level Actions 설정을 추가 점검하고, 운영 방식은 systemd 유닛 또는 동등한 자동복구 경로로 별도 승격한다.
완료 기준
cicd.ymltask가0s종료가 아니라 checkout 이후 실제 실행 로그를 남긴다.- 51123에서
github_deploy로 2451124포트 수동 SSH가 지속적으로 성공한다. - Gitea DB 기준
action_run_job.task_id != 0,action_task신규 row 생성,action_runner.last_online현재 시각 갱신이 확인된다. rb8001새 run이Test SSH Connection과Deploy to Target Server를 통과한다.git push origin main후 24 서버rb8001컨테이너가 자동 재시작된다.- 수동 배포 없이도
docker ps, 헬스체크, 최신 커밋 반영이 확인된다.
한 줄 결론
- 목표는
24=192.168.0.106SSOT를 유지한 채 51123 self-hosted runner를 다시 실행 경로에 올려git push -> workflow 본문 실행 -> 24 자동 배포를 복구하는 것이다.