Еднократното зареждане от образ не прави Pi устройство, което може да се изгражда наново. Нужен е малък набор от входове, които можете да приложите отново: поддържана основа, обявена конфигурация, постоянните данни на приложението и идентичност на устройството, която принадлежи само на тази платка. Пропуснете ли последното, всяка подмяна се превръща в клонинг на идентификационни данни.

Стъпките по-долу са ред на работа, а не препоръка за инструмент. Всяка система за конфигурация, която може да ги изрази, ще свърши работа.

Първо избройте четирите вида входове

Базовият образ и пакетите му определят операционната система, архитектурата и откъде идват обновленията, а конструкторът на образи помага само ако инструментът, който назовава, все още се поддържа за вашата версия. Обявената конфигурация е частта, която човек преглежда: мрежови роли, настройки на услугите и действията от жизнения цикъл, които всяка услуга изисква. Постоянните данни на приложението са всичко, което услугата не може да генерира отново, а местоположението и начинът на архивиране принадлежат на това приложение, не на образа. Идентичностите на устройствата и тайните са четвъртият вход и точно тях хората забравят, когато клонират работеща карта.

Напишете четирите списъка, преди да изграждате нещо наново. Списък с празен ред е решение, което още не сте взели.

Дръжте тайните извън хранилището и кажете къде живеят

Хранилището е добър дом за прегледани шаблони и несекретна конфигурация и лош дом за частни ключове на VPN, многократно използвани администраторски идентификационни данни и диагностични архиви. Ако тайна трябва да съществува на устройството, запишете откъде идва, кой може да я чете и как се сменя. Ключ, който живее само на една SD карта, е единична точка на отказ, а ключ, копиран на всяка платка, е идентификационни данни за целия флот без собственик. Нито едното не е план за възстановяване.

Проверката е проста: ако хранилището изтече утре, какво ще спечели нападателят? Шаблоните и бележките за топологията са поносими. Работещата идентичност не е.

Оставете автоматизацията да притежава това, което може да пусне отново

Моделът на Ansible пази инвентар от управлявани възли отделно от пиеси, задачи, роли и манипулатори, които се задействат, когато задача съобщи за промяна. Използвайте тази структура, за да дадете на всяка услуга един собственик на конфигурацията вместо да преигравате история на команден ред. Предпочитайте операции, безопасни за двукратно изпълнение, и решавайте съзнателно как променен файл стига до работещия процес. Задача, която гарантира, че услугата е стартирана, не я кара непременно да презареди конфигурация, която току-що сте пренаписали.

Разделете и етапите на администриране. Първоначалната свързаност, рутинната конфигурация и управлението чрез VPN са три различни прозореца, а третият може да премахне собствения ви достъп, ако преизграждането нулира мрежата под него. Пазете независим път за вход.

Възстановявайте данни и идентичност умишлено

Томовете на контейнера съществуват независимо от жизнения цикъл на контейнера, а записваемият слой вътре в контейнера — не, затова пресъздаването на контейнер от образа му не пресъздава състоянието, което приложението е използвало, както описва документацията за томове. Запишете томовете, монтираните точки и външните услуги, от които устройството зависи, и използвайте собствения процес за архивиране и възстановяване на приложението. Контейнер, който стартира без грешка, не е доказателство, че базата му данни и файловете му са в съгласие.

За идентичността решете дали възстановявате същото устройство, или регистрирате подмяна, защото това са различни операции с различно почистване.

Съгласувайте достъпа на стария партньор, преди да активирате идентичност другаде, и само след това тествайте преизграденото устройство в изолирана среда или среда за възстановяване. Проверете нужните данни, правилната идентичност, път за обновяване със собственик и предвидената мрежова политика.

Зареждащият се образ е един вход от четири и е най-лесният за възпроизвеждане.

Подобни статии