Перейти к содержанию

Cloud-init и сетевые настройки облачного экземпляра

cloud-init — механизм первоначального конфигурирования экземпляра облачной виртуальной машины. В НАЙС.ОС CLOUD есть собственный RPM-пакет cloud-init и профиль niceos-cloud.cfg. При этом фактический способ генерации сети (renderer, datasource, периодичность изменения файлов) нужно проверять на конкретном образе.

Почему это важно

Если адрес задаёт облачный провайдер через метаданные, а администратор вручную изменяет .network, при перезапуске экземпляра или повторной инициализации настройки могут вступить в конфликт. В результате сеть работает до следующей загрузки, после чего адрес неожиданно меняется.

Диагностика (без изменения системы)

rpm -q cloud-init
command -v cloud-init || true
cloud-init status --long 2>/dev/null || true
systemctl list-unit-files 'cloud-*'
networkctl status
ls -l /etc/cloud /etc/cloud/cloud.cfg.d 2>/dev/null
journalctl -b -u cloud-init --no-pager -n 100

Если cloud-init не установлен в данном образе, это не ошибка. Наличие SPEC в каталоге исходников не означает, что он обязательно включён в конкретный ISO.

Как установить источник истины

  • Посмотрите, присутствует ли в выводе networkctl status ens3 путь к .network, созданному cloud-init.
  • Проверьте, записывает ли поставщик образа сетевую конфигурацию при первой загрузке.
  • Определите, задаётся ли сеть через облачные метаданные, DHCP или статический профиль внутри ОС.
  • Уточните, требуется ли после изменения сети удалять/сбрасывать состояние cloud-init. Делать это без проверки нельзя: изменение instance-id и пользовательских данных может вызвать повторную настройку и перезапуск скриптов.

Практическое правило

Для стандартного облачного образа сначала изменяйте конфигурацию в штатной системе управления виртуальными машинами, а не переписывайте сетевые файлы в гостевой ОС. Если требуется локальная статическая конфигурация, согласуйте способ с настройками cloud-init, затем подтвердите поведение после перезагрузки.

Непроверенные рецепты

Не выполняйте cloud-init clean --logs и не отключайте network config одной скопированной командой: это меняет повторную инициализацию экземпляра. В этом руководстве такие изменения намеренно не предлагаются до проверки niceos-cloud.cfg и образа.

См. сетевая диагностика и первый запуск.