초기 구현: TailRescue Headscale ISO 프로젝트 정리

This commit is contained in:
2026-06-01 19:46:05 +09:00
commit 6334bf0eb8
9 changed files with 480 additions and 0 deletions

39
docs/runbook.md Normal file
View File

@@ -0,0 +1,39 @@
# TailRescue 운영 Runbook
## 산출물 관리
- Git: 소스/문서/스크립트/스킬만 저장
- ISO: Gitea Release attachment 또는 내부 artifact path에 저장
- 현재 PoC ISO hash: `3d7995cfdf58c62f6ee167458079a7eaa1d2a79ac56e5f019cab1ec856943ddd`
## 빌드
```bash
./scripts/headscale-create-preauth.sh
cp templates/rescue.env.example rescue.env
cp templates/authorized_keys.example templates/authorized_keys
# rescue.env에는 현장용 preauth key/password를 넣고, authorized_keys에는 공개키만 넣는다.
./scripts/build-live-iso.sh
```
## 검증
```bash
cp /root/tailrescue-dist/$(cat /root/tailrescue-dist/latest.txt) /var/lib/vz/template/iso/tailrescue-headscale-test.iso
./scripts/test-proxmox-vm.sh
ssh rescue@100.64.x.y 'echo SSH_OK; sudo -n true; rescue-status; list-disks'
```
## 현장
- Ventoy USB에 ISO 복사
- 대상 PC에서 ISO 선택 후 Enter
- Headscale node list에서 `tailrescue-*` 확인
- `ssh rescue@100.64.x.y`
- `sudo mount-ntfs-ro /dev/sdXN /mnt/windows`
## 장애 대응
- Headscale에 노드가 안 뜸: DHCP/NIC/firmware/케이블 확인, `ip -br a`, `journalctl -u tailrescue-firstboot`
- SSH가 안 됨: `systemctl status ssh`, `/var/log/auth.log`, `id rescue`, `sudo passwd -S rescue`
- 내장 NIC 미인식: Realtek RTL8153/RTL8156 또는 ASIX AX88179 USB LAN 동글 사용