HAL 0.4.1 bear hal21 배포 기록: VERSION_HISTORY 0.4.1 "배포" 절(main ff 2b31543, 빌드·verify·artifact sha256 5종, 백업·stage·register-release·bootstrap-release·전환·재시작 500ms, 마이그레이션 hal_0011·TLS 신뢰 로그·배포 코드 read-back, HAL 서버 Agent 설치·승인(hal-host-agent.sh), HAL 작업으로 agent 0.4.1(2대)·hawkeye·backup 기록, hawkeye 행 갱신 확인, 되돌리기, 운영자 조치, 알려진 제한), RUNBOOK §11.1 실행 기록, 로컬 E2E 보고서 갱신
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
2b31543a86
commit
3250502caa
@@ -43,6 +43,21 @@
|
||||
### 테스트
|
||||
- `test/hal-041.test.mjs` RED(모듈·스크립트·문서 없음) → GREEN 7/7: 실제 자체 서명 HTTPS 픽스처(hal.local.test)로 TLS 확인·핀·CA 경로·설치 명령, 이미 등록 409·재등록 허용·재인증, Agent CLI(별도 프로세스) 오류 문구·`--ca`·`status` 런타임 CA, 부트스트랩 완료·배너·hawkeye, CLI 3종, 스크립트·문서·버전. 기존 테스트 갱신: 배너 문구(`hal-ui`·`hal-reauth-banner`: "부트스트랩 미완료(…첫 Agent 미등록)" → "부트스트랩 진행 중(…HAL 서버의 Node Agent 미설치)"), 프로필 목록에 `hal`(`hal-0317`), 버전 0.4.1(`hal-ai`·`webmaker-visual-editor` 등). 전체 Suite 32파일 통과. 로컬 E2E(실제 HAL 프로세스 + 자체 서명 TLS 앞단, sudo/systemctl 셈): 핀 없는 curl → 60(WS2 재현), 핀 명령 → CA 받기·등록·유닛 `NODE_EXTRA_CA_CERTS`, 같은 명령 재실행 → "이미 등록된 서버"(종료 0), 새 토큰 → HAL 409 안내(종료 1), `hal-host-agent.sh` → 부트스트랩 완료·pending 4.
|
||||
|
||||
### 배포(2026-11-06 UTC, bear `hal21.ariweb.net` HAL + HAL 서버 Agent + HAL 작업으로 agent)
|
||||
- main ff `0f5e01a → 2b31543`, 깨끗한 main 빌드·verify(전체 32파일 통과, dirty=false, provenanceClean). artifact sha256: hal `3a9f93b02f0c13d6a6edd007a675016fab5f5ce672357c2258189fcf7ca0a1da` · agent `35a2a9ccf20204657a66c01e08b4053b265c3073a1e8f7e76bf9b4f012540d5a` · portal `323155f5f9402680c3cce1acc86b3ce885341f8c2c40235c3fa1439810c693e3` · webmaker `a1556587c884da74eefb9764f3ad26ebced4c198860294253d8315e8926798b6` · arimail `f9fc10858960ba9058e7fc7e68e64d42ea9d007db2f855ba0a6b27fb34bd0d7b`.
|
||||
- HAL: 백업 `/srv/ariweb/hal/backups/pre-v0.4.1-20261106T084347Z` → stage(`hal/tls.mjs`·`deploy/hal-host-agent.sh` 확인) → `register-release --approve` → `bootstrap-release` → current `releases/0.4.1-2b31543` → 재시작 뒤 500ms 에 health ok(0.4.1). config·vault 보존 sha256 전=후. 운영 DB read-back: 마이그레이션 `hal_0011_token_replace`, 릴리스 0.4.1 approved. 기동 로그 "공개 주소 TLS: 신뢰됨"(Let's Encrypt → 설치 명령에 핀 없음), `GET /agent/v1/tls` trusted·`hal-ca.pem` 404(불필요). 배포 코드 read-back(메모리 DB, 사설 CA 흉내): 완료 전 배너 "부트스트랩 진행 중…", 완료 뒤 "부트스트랩 완료 · 기능 단위 서버 배포 대기: 고객 포털, Webmaker, AriMail, 백업", 핀 설치 명령, 두 번째 토큰 409 `server_already_registered`, `/agent/v1/hal-ca.pem` 200.
|
||||
- HAL 서버 Agent(`deploy/hal-host-agent.sh --name hal21.ariweb.net --by claude-fable-5.1`): 서버 `srv_01a1b007b83b87fca6c9766a94`(control, 프로필 hal) · Agent `ag_01a1b007b9c088f15b3031db15` · `/srv/ariweb/agent`(유닛 `ariweb-agent`, loopback `http://127.0.0.1:8900`) · 승인 → bootstrapComplete true, pendingModules [](운영 HAL 은 기능 모듈이 모두 배치되어 배너 없음). `/api/health.deployment` = deployed portal·webmaker·arimail·backup, agents 3.
|
||||
- HAL 작업(CLI `module-deploy`, 감사 `cli:claude-fable-5.1`, 한 대씩): agent 0.4.1 → srv1953374(`j_01a1b00816493ecf9b390fce32`) · jitsi(`j_01a1b0082beaaf45decd2fefa2`) 각 done 5초 안, 재시작 뒤 heartbeat 0.4.1. hawkeye 0.4.1 기록(3대, `j_01a1b008831e7c9bf45ca2a400`) · backup 0.4.1 기록(srv1953374, `j_01a1b0089874924f22df95de5f`). 실패 작업 0. read-back: 세 서버 모두 agent_version 0.4.1, `hawkeye` 행 last_check_at 08:45(0.3.17 잔여 결함 해소: 2026-10-29 에 멈춰 있던 값 갱신), `observability` 행 0. Webmaker·AriMail·포털은 코드 변경이 없어 배포하지 않음.
|
||||
- 되돌리기: HAL `ln -sfn /srv/ariweb/hal/releases/0.4.0-9f1e490 /srv/ariweb/hal/current && sudo systemctl restart ariweb-hal`. HAL 서버 Agent 제거는 RUNBOOK §11.1. 모듈은 HAL 작업 `module.rollback`(agent `releases/0.4.0` 보존).
|
||||
- 운영자 조치: (1) 사설 CA 로 운영하는 HAL(예: hal.local.test)은 이 릴리스로 올린 뒤 운영자 콘솔에서 토큰을 다시 발급해 핀이 붙은 명령으로 설치한다(RUNBOOK §11.3). (2) hal21 서버 행의 `webmaker` 모듈은 bear 의 webmaker.ibit.kr(Suite 외 운영)을 Agent 가 발견해 보고한 것 — 배포 대상이 아니며 인벤토리 전송은 환경 변수 미지정으로 `inventory_incomplete` 로그만 남긴다(필요하면 서버 행에서 정리). (3) 0.4.0 이하 Agent 가 사설 CA HAL 에 이미 붙어 있는 서버는 RUNBOOK §11.3-4.
|
||||
|
||||
### 알려진 제한(0.4.1)
|
||||
- 핀 설치 명령은 HAL 이 자기 공개 주소에 접속할 수 있어야 만들어진다(hairpin NAT 불가 등으로 접속이 안 되면 `trusted:null` → 핀 없는 명령 + 기동 로그 경고). 그때는 운영자가 `<data>/tls/hal-ca.pem` 을 두고 대상 서버에서 `--ca` 로 설치한다.
|
||||
- 루트를 체인에 싣지 않는 사설 CA 는 `<data>/tls/hal-ca.pem` 이 있어야 CA 를 제공한다. 인증서 키 교체 뒤에는 10분(또는 `GET /agent/v1/tls?refresh=1`) 뒤 새 핀이 반영된다 — 그 사이 발급한 명령은 핀 불일치로 실패하므로 다시 발급한다.
|
||||
- `tls.setDefaultCACertificates` 가 없는 Node(22.18 이하)는 유닛의 `NODE_EXTRA_CA_CERTS` 만으로 동작한다(설치 스크립트가 넣는다).
|
||||
- HAL 서버 Agent 는 control 역할이라 web·backup 서버가 하나도 없을 때 사이트·백업 배치 후보가 된다(0.1.1 의 단일 서버 대체 규칙). 전용 서버가 생기면 그쪽이 우선한다.
|
||||
|
||||
|
||||
## 0.4.0 (2026-10-29)
|
||||
|
||||
- **작성자**: 개발 지시 — Oz(`Ariweb-Suitle_Dev-Order_v0.4.0.md`, 2026-10-29) · 구현 — Claude Opus 5.5(브랜치 `feature/hal-settings-v0.4.0`, 기준 main `54db663` = 0.3.17).
|
||||
|
||||
Reference in New Issue
Block a user