OTA Update & Canary Rollout
Update agent tanpa intervensi manual, staged rollout.
Alur OTA Update
| Step | Aksi | Detail |
|------|------|--------|
| 1 | Agent Poll Version | GET /api/agent/version |
| 2 | Bandingkan SHA256 | Current vs available |
| 3 | Download Binary | /dl/agent-linux-amd64 |
| 4 | Verify ELF + SHA256 | Reject jika tidak match |
| 5 | Rename & unix.Exec | Atomic swap, same PID |
Update menggunakan unix.Exec() — tidak ada proses baru dibuat, PID tetap sama,
systemd tidak perlu restart. Agent berjalan dengan binary baru secara transparan.
Canary Rollout System
Test versi baru di sebagian server sebelum rollout penuh:
- Upload
rawonguard-agent-linux-amd64.canary - Set server ke channel
canarydi panel - Agent tersebut auto-update ke canary binary
- Monitor — jika aman, klik Promote di Settings
- Semua canary server reset ke stable channel
ELF Arch Validation
Sebelum binary baru dieksekusi, verifyELFArch() membaca bytes 18-19 dari ELF header
(e_machine field) dan bandingkan dengan runtime.GOARCH dari agent yang sedang jalan.
Mencegah:
- Download binary amd64 ke server arm64
- Binary rusak/terkorupsi