cloud-init и дополнительные IPv6-адреса?

Вопрос или проблема

Каков предполагаемый, надежный и чистый способ добавить дополнительные IPv6-адреса в виртуальную систему, работающую на сервере Ubuntu, настроенном с помощью cloud-init (например, облачный провайдер, LXD,…)?

  • Обычно cloud-init создает файл /etc/netplan/50-cloud-init.yaml, и было бы легко просто добавить дополнительные адреса в этот файл, но, насколько я знаю, cloud-init перезаписывает этот файл всякий раз, когда провайдер меняет настройки, например, DNS-резолверы. Изменения будут потеряны в этом случае, не так ли?
  • С другой стороны, netplan, кажется, принимает только один файл для каждого сетевого устройства, поэтому не ясно, корректно ли добавлять второй файл. Когда я попробовал это со вторым файлом, это сработало, но это противоречит мануалу netplan, который говорит, что “Лексикографически более поздние файлы (независимо от того, в каком они каталоге) дополняют (новые ключи отображения) или заменяют (те же ключи отображения) предыдущие.” , так что добавление второго файла должно — следуя мануалу — переопределить, и, таким образом, стереть конфигурацию адреса в 50-cloud-init.yaml.

Итак, даже если в данный момент добавление второго файла, кажется, работает, будет ли это надежно работать в будущем или исчезнет с каким-либо обновлением netplan?

С уважением

Ответ или решение

Добавление дополнительных IPv6-адресов на виртуальную систему, использующую Ubuntu Server и настраиваемую через cloud-init, – это важная задача, требующая надежного и чистого подхода. Рассмотрим все аспекты этой проблемы и возможные решения.

Проблема и задачи

Сейчас, когда cloud-init инициирует конфигурацию сети, он создает файл /etc/netplan/50-cloud-init.yaml. Этот файл используется для настройки сетевых интерфейсов через Netplan. Основная проблема заключается в том, что любые изменения, внесенные вручную в этот файл, могут быть потеряны при любой последующей модификации облачного провайдера, например, при изменении DNS серверов.

Краткое резюме проблем:

  • Нестабильность: Изменения в 50-cloud-init.yaml могут быть перезаписаны.
  • Множественные файлы: Использование второго файла для одного интерфейса противоречит документированным принципам Netplan, что может привести к нежелательным последствиям.

Возможные решения

  1. Использование cloud-init для статической конфигурации:
    Вы можете добавить дополнительные IPv6-адреса прямо в конфигурации в Cloud-Init, используя формат YAML. Это делается в разделе network внутри cloud-config. Пример:

    network:
     version: 2
     ethernets:
       eth0:
         addresses:
           - 2001:db8::1/64
           - 2001:db8::2/64
         gateway6: 2001:db8::1

    Такое решение надежно, так как оно сохранится при изменении настроек провайдера.

  2. Создание пользовательского Netplan-файла:
    Если вы используете netplan, то создание дополнительного конфигурационного файла будет работать, но необходимо быть осторожным с порядком применения. Несмотря на противоречивую документацию, на практике, Netplan обрабатывает файлы по алфавитному порядку, поэтому naming вашего пользовательского файла, например, 99-custom.yaml, обеспечит его последующее применение.

  3. Скрипты и автоматизация:
    Вы можете использовать системные скрипты (например, через cron или systemd) для проверки и автоматического изменения конфигурации сети при обнаружении изменений в cloud-init. Это потребует дополнительных умений в shell-скриптинге и знания системных настроек.

Рекомендации и будущее

В долгосрочной перспективе лучший подход — это максимально использовать возможности cloud-init, чтобы сохранить ваши конфигурации в едином и централизованном виде. Однако стоит отметить, что Netplan может со временем изменить свою реализацию, и нужно быть готовым адаптировать конфигурации в ответ на изменения в мануале или обновления в ПО.

Заключение

Для управления дополнительными IPv6-адресами на облачной инфраструктуре Ubuntu рекомендуется использовать расширенные возможности Cloud-Init для конфигурации сети. Это обеспечит надежность и предсказуемость изменений в сетевых конфигурациях, сводя на нет риск перезаписи пользовательских настроек.

Оцените материал
Добавить комментарий

Капча загружается...