Opublikowano · Zaktualizowano
Integracja aplikacji, identity i VPN w provisioningu urządzeń
Zbudowałem centralną aplikację provisioningową w Laravel 11. Łączy rekordy urządzeń, Authentik, konfigurację WireGuard, warstwę reverse proxy i skrypty Bash konfigurujące urządzenie, przy partiach rejestracji po około 2000–3000 sztuk. Ta notatka dotyczy głównie jednej decyzji: który system jest właścicielem którego fragmentu stanu urządzenia.
- Laravel
- device provisioning
- WireGuard
- Authentik
- Redis
- REST API
- automatyzacja
Jeden właściciel dla każdego fragmentu stanu
Rejestracja przyjmuje pojedyncze numery seryjne i zakresy, a ten sam workflow musi utworzyć identity i konfigurację sieciową, których urządzenie potrzebuje przy uruchomieniu.
Każdy z tych elementów ma jednego właściciela. Laravel trzyma rekord urządzenia i reguły biznesowe, Authentik odpowiada za identity i dostęp, WireGuard z wg-portal za konfigurację VPN, Nginx Proxy Manager za proxy, a skrypty instalacyjne tylko wprowadzają zmiany na urządzeniu. Żaden komponent nie trzyma własnej kopii stanu urządzenia.
Workflow w Laravelu
Aplikacja korzysta z PostgreSQL i kolejek na Redisie dla pracy, która nie powinna blokować requestu administratora. Laravel Horizon pokazuje postęp kolejki i to, które zadania się nie powiodły. Operacje administracyjne przechodzą przez Laravel Policies, a dostęp chroni TOTP MFA z kodami odzyskiwania.
Administrator może wkleić mieszaną listę pojedynczych numerów i zakresów rozdzielonych przecinkami, np. E000001-E000230. Aplikacja usuwa z niej duplikaty i składa jedną listę do zatwierdzenia. Potem generuje konfigurację WireGuard, a skrypty Bash na urządzeniu pobierają ją przez REST API, które jest jedynym interfejsem dla automatyzacji po stronie urządzeń.
- Pojedyncze numery i zakresy w jednym wejściu, deduplikowane przed zatwierdzeniem.
- Operacje administracyjne kontrolowane przez Laravel Policies, z TOTP MFA.
- Kolejki dla pracy, która nie musi blokować requestu, widoczne w Horizonie.
- Jedno REST API jako interfejs dla automatyzacji na urządzeniach.
Zakres i ograniczenia
Proces obsługuje pojedyncze urządzenia i zakresy w partiach po kilka tysięcy sztuk. Mój udział skończył się w marcu 2025. Nie mam pomiarów „przed i po” i nie wiem, ile urządzeń działa dziś na tym systemie, dlatego poza wielkością partii nie podaję liczb.