Проект CoreOS, развивающий основанное на идеях контейнерной изоляции серверное окружение, представил инструментарий Ignition, предоставляющий похожие на Cloud-Init средства для конфигурации системы на стадии начальной загрузки. Ignition выполняется во время работы initramfs и позволяет выполнять такие действия как управление дисковыми разделами, форматирование разделов, запись файлов, создание юнитов systemd и настройка пользователей.
Например, Ignition может использоваться для настройки индивидуальных параметров узла, загружаемого с использованием единого типового системного образа. В таких условиях информация о конфигурации конкретной системы отсутствует в загружаемом окружении и передаётся извне или имеется несколько вариантов конфигурации для разных применений образа. Ignition поддерживает загрузку конфигурации по URL, через сервис передачи метаданных по сети, при помощи специальных прослоек и т.п. Конфигурация задаётся в формате JSON.
Из недостатков Cloud-Init, которые подтолкнули к разработке Ignition упоминаются проблемы с автоматизированным изменением и генерацией файлов конфигурации в формате YAML, а также отсутствие возможности настройки на самом раннем этапе загрузки (например, cloudinit запускается после инициализации сети). Ignition запускается на стадии до передачи управления systemd и перед монтированием дисковых разделов, что позволяет выполнять такие действия, как переформатирование корневой ФС, создания RAID-разделов и настройка сетевой подсистемы для использование агрегированных интерфейсов.
Все запускаемые Ignition сервисы изначально известны и могут отслеживаться запущенным на следующей стадии загрузки systemd, что позволяет избавиться от ожидания завершения операций и интегрировать сервисы Ignition в цепочку отслеживания зависимостей системного менеджера systemd, который может сразу начать выполнять другие работы, не пересекающиеся с ещё не завершившимися работами Ignition.
|