Odbuduj urządzenie VPN na Raspberry Pi bez kopiowania jego klucza
Obraz to jedno z czterech wejść. Zadeklaruj konfigurację, utrzymuj dane aplikacji w stanie odtwarzalnym i nadaj każdej płytce własną tożsamość przed uruchomieniem.
Jednorazowy rozruch z obrazu nie czyni z Pi urządzenia, które da się odtworzyć. Potrzebny jest mały zestaw wejść, które można zastosować ponownie: utrzymywana baza, zadeklarowana konfiguracja, trwałe dane aplikacji i tożsamość urządzenia należąca tylko do tej płytki. Pominięcie ostatniego sprawia, że każda wymiana staje się klonem poświadczenia.
Poniższe kroki to kolejność pracy, a nie rekomendacja narzędzia. Wystarczy dowolny system konfiguracji, który potrafi je wyrazić.
Najpierw wypisz cztery rodzaje wejść
Obraz bazowy i jego pakiety określają system operacyjny, architekturę i źródło aktualizacji, a kreator obrazów pomaga tylko wtedy, gdy wskazywane przez niego narzędzie jest nadal utrzymywane dla twojego wydania. Zadeklarowana konfiguracja to część, którą przegląda człowiek: role sieciowe, ustawienia usług i działania cyklu życia potrzebne każdej usłudze. Trwałe dane aplikacji to wszystko, czego usługa nie potrafi odtworzyć, a ich lokalizacja i metoda kopii zapasowej należą do tej aplikacji, nie do obrazu. Tożsamości urządzeń i sekrety to czwarte wejście i to właśnie o nich ludzie zapominają, klonując działającą kartę.
Zapisz te cztery listy, zanim cokolwiek odbudujesz. Lista z pustym wierszem to decyzja, której jeszcze nie podjąłeś.
Trzymaj sekrety poza repozytorium i powiedz, gdzie mieszkają
Repozytorium to dobry dom dla przejrzanych szablonów i konfiguracji niebędącej sekretem, a zły dom dla prywatnych kluczy VPN, wielokrotnego użytku poświadczeń administratora i archiwów diagnostycznych. Jeśli sekret musi istnieć na urządzeniu, zapisz, skąd pochodzi, kto może go czytać i jak jest rotowany. Klucz żyjący tylko na jednej karcie SD to pojedynczy punkt awarii, a klucz skopiowany na każdą płytkę to poświadczenie całej floty bez właściciela. Żadne z nich nie jest planem odtworzenia.
Test jest prosty: gdyby repozytorium wyciekło jutro, co zyskałby atakujący? Szablony i notatki o topologii przetrwają. Działająca tożsamość nie.
Pozwól automatyzacji posiadać to, co może uruchomić ponownie
Model Ansible trzyma inwentarz zarządzanych węzłów oddzielnie od sztuk, zadań, ról i procedur obsługi, które uruchamiają się, gdy zadanie zgłosi zmianę. Użyj tej struktury, aby dać każdej usłudze jednego właściciela konfiguracji zamiast odtwarzać historię powłoki. Preferuj operacje bezpieczne do dwukrotnego uruchomienia i świadomie decyduj, jak zmieniony plik dociera do działającego procesu. Zadanie, które zapewnia uruchomienie usługi, niekoniecznie zmusza ją do ponownego wczytania konfiguracji, którą właśnie przepisano.
Rozdziel też etapy administracji. Łączność rozruchowa, rutynowa konfiguracja i zarządzanie zależne od VPN to trzy różne okna, a trzecie może odebrać ci własny dostęp, jeśli odbudowa zresetuje sieć pod nim. Zachowaj niezależną ścieżkę wejścia.
Odtwarzaj dane i tożsamość świadomie
Wolumeny kontenerów trwają niezależnie od cyklu życia kontenera, natomiast warstwa zapisywalna wewnątrz kontenera nie, dlatego odtworzenie kontenera z jego obrazu nie odtwarza stanu, którego używała aplikacja, jak opisuje dokumentacja wolumenów. Zapisz wolumeny, punkty montowania i usługi zewnętrzne, od których zależy urządzenie, i korzystaj z własnego procesu kopii zapasowej i odtwarzania aplikacji. Kontener, który startuje bez błędu, nie jest dowodem, że jego baza danych i pliki są zgodne.
W kwestii tożsamości zdecyduj, czy odtwarzasz to samo urządzenie, czy rejestrujesz zamiennik, bo to różne operacje z różnym sprzątaniem.
Uzgodnij dostęp starego partnera, zanim aktywujesz tożsamość gdzie indziej, i dopiero potem przetestuj odbudowane urządzenie w środowisku izolowanym lub odtwarzania. Sprawdź wymagane dane, właściwą tożsamość, ścieżkę aktualizacji z właścicielem i zamierzoną politykę sieciową.
Uruchamialny obraz to jedno z czterech wejść i najłatwiej je odtworzyć.