Когда запускается мой экземпляр AMI, создается файл 99-disable-network-config.cfg.Что это создает? - PullRequest
0 голосов
/ 30 января 2019

Мой рабочий процесс:

Packer -> Kick off a kickstart build of my system on vCloud
Packer -> Export VM as OVA
Packer -> Upload OVA to s3 bucket in AWS
Packer -> Ask AWS to convert my OVA to AMI
Manual -> Launch AMI instance

Когда я запускаю свой экземпляр AMI, я создаю экземпляр cloud-init на ранней стадии после запуска сетевой службы.Но cloud-init не настраивает мои интерфейсы, потому что этот файл присутствует:

/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Этот файл говорит cloud-init обойти конфигурацию сети, и в результате мой экземпляр недоступен.

Я знаю, что cloud-init запускается, потому что он устанавливает мое имя хоста в другом файле, который я определил в своем собственном дистрибутивном скрипте.Хост получает свое имя хоста от AWS во время загрузки, поэтому я знаю, что сетевой адаптер работает!Кроме того, я вижу, что он получает IP через DHCP в /var/log/messages)

Выдержка конфигурации:

system_info:
   # This will affect which distro class gets used
   distro: cent1
   network:
     renderers: ['cent1']

По сути, сценарий distro запущен (cloud-init/cloudinit/distros/cent1.py)но сценарий renderers не является (cloud-init/cloudinit/net/cent1.py).

Я искал базу кода packer и базу кода cloud-init, а также мою собственную базу кода, и нигде нет фактическойсоздание или перемещение такого файла присутствует.Единственное место, где упоминается файл - это комментарий в источнике cloud-init.Следующий комментарий находится в cloudinit/distros/debian.py (мой экземпляр - CentOS, но этот комментарий объясняет, что делает этот файл):

 34 # To disable cloud-init's network configuration capabilities, write a file
 35 # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
 36 # network: {config: disabled}

Когда я останавливаю свой экземпляр и монтирую его том в другой системе, яможно увидеть 99-disable-network-config.cfg файл присутствует.Еще более запутанным является то, что в верхней части файла написано:

[root@host ~]# cat /root/drop1-3/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# Automatically generated by the vm import process
 network: {config: disabled}

Когда я выполняю поиск в Google, я вижу другие ссылки на строку # Automatically generated by the vm import process.

Например, этот пост имеет такую ​​ссылку.

Еще один бит информации.Если я вручную удаляю файл 99-disable-network-config.cfg в cloud-init util.py непосредственно перед тем, как он проверяет файл 99-disable-network-config.cfg, все работает точно так, как должно - сеть настраивается, и я могу подключиться к своему экземпляру по SSH.Я не помещаю туда файл 99-disable-network-config.cfg.Я не вижу ничего в источнике packer, предполагающем, что он помещает туда этот файл.Я не вижу ничего в источнике cloud-init, предполагающем, что он помещает туда этот файл.

Итак, вопрос в том, откуда этот файл?У меня уже есть обходной путь, но я хотел бы понять причину.Я не смог найти основную причину, по которой этот файл присутствует.

(Извините, это так долгообходной путь.)

...