Откуда cloud-init берет настройки

При старте cloud-init ищет поддерживаемый data source. Это может быть metadata service платформы или локальный источник. От него зависят hostname, сети, instance-id, SSH-ключи и user-data. Поэтому один и тот же шаблон может вести себя по-разному в разных облаках.

Источник важен. Проверьте документацию образа и облачной платформы.

User-data бывает cloud-config, скриптом или MIME-объектом с несколькими частями. Некоторые модули выполняются один раз для экземпляра, другие - при каждой загрузке; проверяйте частоту запуска конкретного модуля, чтобы повторный boot не создал побочный эффект.

Как диагностировать первичную настройку

Смотрите статус и журналы cloud-init, затем проверяйте распознанный datasource и instance-data. В шаблоне не используйте поля, которых этот источник не предоставляет: cloud-init может выдать предупреждение или оставить переменную неразрешенной.

На образе без подходящего datasource возможно использование None datasource. В официальной документации отмечено, что этот режим не получает и не формирует сетевую конфигурацию автоматически. Тестируйте образ на одноразовом инстансе до применения к важной машине.

Сверяйте журнал и этап запуска, чтобы понять, завершилась ли начальная настройка. Если поменялся datasource или instance-id, модуль может вести себя иначе; не повторяйте provisioning-скрипт без проверки побочных эффектов.

cloud-init запускается по стадиям и отслеживает instance-id, чтобы отличать новый экземпляр от повторной загрузки. Перед сменой образа или datasource проверьте, какие модули запускаются «один раз» и какие могут сработать снова.

cloud-init запускается по стадиям и отслеживает instance-id, чтобы отличать новый экземпляр от повторной загрузки. Перед сменой образа или datasource проверьте, какие модули запускаются «один раз» и какие могут сработать снова.

Что не класть в user-data

Параметры запуска могут попадать в metadata service, журналы, шаблоны и историю управления виртуальными машинами. Не передавайте открытые постоянные пароли или приватные ключи без специально предусмотренного secret manager. Ограничьте права чтения и удаляйте временные bootstrap-секреты после настройки.

Смотрите SSH-ключи, VPS на Linux и SSH на VPS. Использованы официальные docs cloud-init, проверенные 8 октября 2026 года; инстансы не создавались и user-data не запускались.