Назад | Перейти на главную страницу

Cloud-init не может получить метаданные

Я установил OpenStack с Puppet, и он по большей части отлично работает, но я столкнулся с довольно опасной проблемой: мои гости Ubuntu (и, вероятно, другие) не могут получить метаданные во время загрузки.

Я создал экземпляр Cirros, чтобы запустить пару быстрых тестов, и обнаружил

Тогда я подумал, что это может быть проблема с отдельным экземпляром, поэтому я создал еще одну гостевую Ubuntu 14.10, но у нее была точно такая же проблема:

util.py[WARNING]: Failed fetching metadata from url `http://169.254.169.254/2009-04-04/meta-data/`
init: Error while reading from descriptor: Broken pipe

Версии: * Ubuntu 14.10 Server 64 бит (как хост, так и гости) * Nova 2.17.0 (Icehouse)

Спасибо за ваше время!

редактировать

Я перестроил свою установку OpenStack с нуля, поскольку иначе не смог решить эту проблему, в надежде, что что-то пошло не так во время предыдущей установки. К сожалению, переустановка не решила проблему. Конечно, это не значит, что это не была ошибка, которую я продублировал во время этой установки. Тем не менее, кажется странным, что образ Cirros может получить этот URL, а образ сервера Ubuntu 14.10 - нет, даже если он получает IP.

Виновником в этом была моя настройка MTU. Я всегда забываю обрабатывать MTU, но наткнулся на небольшую статью (где-то, если найду, выложу), в которой описывалась та же проблема. Моим решением было указать

dnsmasq_config_file = /etc/neutron/dnsmasq.conf

в моем /etc/neutron/dhcp_agent.ini конфигурация. В /etc/neutron/dnsmasq.conf файл содержит только

dhcp-option=26,1424

И теперь все экземпляры без проблем получают свои метаданные! Однако 1424 не является точным и быстрым значением. Я просто выбрал его, потому что не хотел определять правильное значение.