Jedno nabootování z obrazu z Pi neudělá zařízení, které lze znovu postavit. Potřebujete malou sadu vstupů, které můžete znovu použít: udržovaný základ, deklarovanou konfiguraci, trvalá data aplikace a identitu zařízení, která patří jen této desce. Vynecháte-li poslední, každá náhrada se stane klonem přihlašovacích údajů.

Kroky níže jsou pořadím práce, nikoli doporučením nástroje. Poslouží jakýkoli konfigurační systém, který je dokáže vyjádřit.

Nejprve sepište čtyři druhy vstupů

Základní obraz a jeho balíčky určují operační systém, architekturu a odkud přicházejí aktualizace, a nástroj na stavbu obrazů pomůže jen tehdy, pokud je nástroj, který uvádí, pro vaše vydání stále udržován. Deklarovaná konfigurace je část, kterou kontroluje člověk: síťové role, nastavení služeb a akce životního cyklu, které každá služba potřebuje. Trvalá data aplikace jsou vše, co služba nedokáže znovu vytvořit, a jejich umístění a způsob zálohování patří dané aplikaci, nikoli obrazu. Identity zařízení a tajné klíče jsou čtvrtým vstupem a právě na ně lidé zapomínají, když klonují funkční kartu.

Napište ty čtyři seznamy, než cokoli začnete stavět znovu. Seznam s prázdným řádkem je rozhodnutí, které jste ještě neučinili.

Držte tajemství mimo repozitář a řekněte, kde žijí

Repozitář je dobrý domov pro zkontrolované šablony a ne-tajné konfigurace a špatný domov pro soukromé klíče VPN, opakovaně použitelné administrátorské údaje a diagnostické archivy. Pokud tajemství musí na zařízení existovat, zaznamenejte, odkud pochází, kdo ho smí číst a jak se rotuje. Klíč, který žije jen na jedné SD kartě, je jediný bod selhání, zatímco klíč zkopírovaný na každou desku je přihlašovací údaj celé flotily bez vlastníka. Ani jedno není plán obnovy.

Test je jednoduchý: kdyby repozitář zítra unikl, co by útočník získal? Šablony a poznámky k topologii přežijí. Funkční identita ne.

Nechte automatizaci vlastnit to, co umí znovu spustit

Model Ansible drží inventář spravovaných uzlů odděleně od her, úloh, rolí a handlerů, které se spustí, když úloha ohlásí změnu. Použijte tuto strukturu k tomu, abyste dali každé službě jednoho vlastníka konfigurace místo přehrávání historie shellu. Upřednostňujte operace bezpečné pro dvojí spuštění a vědomě rozhodněte, jak se změněný soubor dostane do běžícího procesu. Úloha, která zajistí, že služba běží, ji nemusí přimět znovu načíst konfiguraci, kterou jste právě přepsali.

Oddělte také fáze správy. Počáteční konektivita, rutinní konfigurace a správa závislá na VPN jsou tři různá okna a to třetí vám může odebrat vlastní přístup, pokud přestavba resetuje síť pod ním. Zachovejte si nezávislou cestu dovnitř.

Obnovte data a identitu záměrně

Svazky kontejnerů přetrvávají nezávisle na životním cyklu kontejneru, zatímco zapisovatelná vrstva uvnitř kontejneru ne, a proto znovuvytvoření kontejneru z jeho obrazu neobnoví stav, který aplikace používala, jak popisuje dokumentace ke svazkům. Zaznamenejte svazky, přípojné body a externí služby, na kterých zařízení závisí, a použijte vlastní proces zálohování a obnovy aplikace. Kontejner, který se spustí bez chyby, není důkazem, že jeho databáze a jeho soubory si odpovídají.

U identity rozhodněte, zda obnovujete stejné zařízení, nebo zapisujete náhradu, protože to jsou různé operace s různým úklidem.

Srovnejte přístup starého partnera, než aktivujete identitu jinde, a teprve potom otestujte přestavěné zařízení v izolovaném nebo obnovovacím prostředí. Zkontrolujte potřebná data, správnou identitu, cestu aktualizace s vlastníkem a zamýšlenou síťovou politiku.

Spustitelný obraz je jeden vstup ze čtyř a je nejjednodušší reprodukovat.

Související články