cloud-init — это кроссплатформенный инструмент для автоматической настройки виртуальных машин на этапе их первой загрузки. Он является стандартом де-факто для большинства облачных провайдеров, включая AWS, Azure, Google Cloud и OpenStack, обеспечивая единообразие конфигурации в разных средах.
Процесс инициализации строится на чтении метаданных и пользовательских данных (user-data), передаваемых через API облака. Инструмент выполняет задачи в несколько этапов: от настройки сетевых интерфейсов и монтирования дисков до управления пользователями и SSH-ключами.
Как это работает
Конфигурация описывается в формате YAML (cloud-config). Основные возможности включают:
- Установку и обновление пакетов через
aptилиyum; - Создание пользователей и настройку прав доступа
sudo; - Запись произвольных файлов в файловую систему инстанса;
- Выполнение shell-скриптов через модуль
runcmd.
Использование cloud-init позволяет отказаться от создания множества «золотых образов» (golden images). Вместо этого используется один чистый образ ОС, который кастомизируется программно в момент запуска, что снижает затраты на поддержку инфраструктуры.