# 현장 bootstrap 재개

## 완료 2026-09-20 11:58 KST

- 마감: sudo 임시 password와 빈 디렉터리 삭제 완료. remote.py 재실행은 새 승인/입력 없이는 불가하다. 배포 서비스 credential은 그대로 유지.
- 배포tool hash 일치PASS, 별도 소형patch17파일 보관완료. 현장배포 source는 immutable FULL + /opt/contextra/deploy-tools/site-r01 조합이다.

- deploy session56136 완료. transaction deploy-9d6bed52aec04b5b8f80049d22944ffa DONE. 서비스5개 정상.
- WSS bootstrap4개, heartbeat3회 PASS. 명시적 login총2회/발급1회, Sidecar세션복원Stop/Start1회 후 재접속 성공. session hash불변(추가login없음).
- Medium v1 instance8 batch4 preferred4 5ms READY, camera등록0/Start0/EventPOST0, ArtifactOn/HTTPOn.
- Redisreader PING/관리명령거부PASS, 외부Web소비미확인. final_checks_remote.py 실행완료이므로 중복하지 않는다(launcher이미수정됨).
- 현장final-acceptance/bootstrap-state, localresult.json 참조. 남은것은 Git/Report closeout과 sudo임시file삭제뿐이다. 아래RUNNING은 과거체크포인트다.

- 목표: iCerti AI 현장 Medium/Redis/브리지 설치와 로그인/CSR/WSS. 카메라Start/Event POST 금지. Test Runtime/.101 변경금지.
- Source HEAD bd80ae1; dirty owned deployment_kit/image_identity.py + release.py + tests/deployment/test_image_identity.py. 실제 containerd config->manifest proof와 preloaded load skip 보완. 표적19 PASS.
- SSH known_hosts 고정; sudo password /run/contextra-icerti-sudo.xAWjMb/password는 0600/root, remote.py가 stdin으로만 전달. 로그인 password는 승인된 test private password만 사용(동일계정 사용자전제). CA .68 dccb...1b59 지문검증.
- 현장 /opt/contextra/deploy-tools/site-r01에 새 도구. /data/contextra/site에 configs/env/bridge/tls/session/site 원장 준비. 기존 FULL 변경0, Medium r02를 active-medium/RFDETRMedium에 install, 재변환0.
- prepare 최초는 manifest reference가 config ID라 조회None으로 중단(컨테이너0). image_identity bounded search를 보완한 뒤 그 지점만 재개하여 PREPARED 완료. Secret 생성은 한 번.
- enroll_remote.py 성공: LOGIN_AND_ISSUED_CERTIFICATE_VERIFIED, 새 key/CSR/leaf .70 및 승인 CA 검증. /data/contextra/site/enroll-intent.json 보존. 로그인/발급 반복금지.
- firewall_remote.py 완료: Redis UID999/GID1000 확인 및 ACL권한정합; CTX-ICERTI-REDIS 체인 .68/32만 host .70:16379 허용. DOCKER-USER/INPUT exact rules. contextra-redis-access.service enabled(systemd docker after/PartOf). docker restart0.
- **현재 deploy_remote.py 실행중** exec session56136; remote.release.deploy 원래 FULL archive 검증/해제 및 배포원장으로 실행. remote.py 전체timeout900초. /opt/contextra/state/inflight.json 먼저 읽어서 중복기동 금지. 현재 첫 archive validation 단계. 중단시에 실제 remote PID 확인, 무조건 재실행 금지.
- 남은: deploy결과/서비스/Medium/등록0 확인. 초기로그인때 Gateway없어WSS 실패 예상; Gateway ready뒤 필요한 controlled re-login1회와 token회수상태 확인. 기존 sidecar memory token은 host relogin 뒤 revoked 될 수 있어 introspection401->refresh 경로를 관측. 반복login남발 금지. 실제 WSS/heartbeat/Redis 소비는 별도 판정.
- 실패 시 이번 project 대상만 Stop/reap, rollback없음. 기존 diag-r01 exited컨테이너 보존. 정상후 Owner/run/Report/GitCloseout, sudo임시secret 필요없으면삭제. auth로그 raw노출금지.
