Вопрос или проблема
У меня есть проблема, на которую указали на форуме. Но я вижу, что у всех эта проблема с виртуальными машинами. В моем случае — с физическим сервером:
Когда я запускаю машину, я вижу, что cloud-init-nonet ждет сеть.
--------------------------------
cloud-init-nonet[164.54]: отказался ожидать сетевое устройство.
Cloud-init v. 0.7.5 выполняет 'init' в субботу, 11 октября 2014 в 22:23:38 +0000. Время загрузки 164.77 секунд.
ci-info: +++++++++++++++++++++++Информация о сетевых устройствах+++++++++++++++++++++++
ci-info: +--------+------+-----------+-----------+-------------------+
ci-info: | Устройство | Вверх | Адрес | Маска | Hw-Адрес |
ci-info: +--------+------+-----------+-----------+-------------------+
ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . |
ci-info: | eth1 | True | . | . | 68:XX:ca:YY:09:50 |
ci-info: | eth0 | True | . | . | 00:XX:8c:YY:c7:00 |
ci-info: +--------+------+-----------+-----------+-------------------+
ci-info: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Сбой информации о маршруте!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2014-10-12 00:25:44,469 - DataSourceMAAS.py[CRITICAL]: Отказ от md после 126 секунд из ['http://172.16.0.40/MAAS/metadata//2012-03-01/meta-data/instance-id']
2014-10-12 00:25:44,469 - util.py[WARNING]: Источник данных экземпляра не найден! Вероятно, ожидаются проблемы!
--------------------------------
Это почти то же самое, что видно здесь:
https://ask.openstack.org/en/question/28297/cloud-init-nonet-waiting-and-fails/
Я также пытался объяснить это в этом баге:
https://bugs.launchpad.net/cloud-init/+bug/1345433
Как я сказал в баге, мне кажется, что openvswitch не запускается в нужной последовательности. Но я не знаю. Возможно, это просто моя сетевая конфигурация, зависящая от базы данных openvswitch.
Моя конфигурация довольно проста /etc/network/interfaces:
### Это ничего не делает, но оставлено здесь для справки. Должно работать. Предполагается, что это поддержка openvswitch на этапе загрузки
allow-ovs br-ext
iface br-ext inet manual
ovs_type OVSBridge
ovs_ports eth0
# Основной сетевой интерфейс
auto eth0
iface eth0 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down
auto eth1
iface eth1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
#Это тоже ничего не делает, так как br-int не создается при выполнении этого скрипта
auto br-int
iface br-int inet dhcp
Может быть, кто-то поможет, как это решить? Это действительно сильно мешает моей загрузке, и я уже подумываю удалить MAAS и переустановить без cloud-init.
Это работает для меня:
- вход с помощью :gui по логину/паролю: vagrant/vagrant
- изменить файл
/etc/rc.local
,
добавив строкуsh /etc/init.d/networking restart
прямо передexit 0
- отключить :gui
- выполнить vagrant up или vagrant reload
https://github.com/mitchellh/vagrant/issues/391#issuecomment-2078383
Ответ или решение
Проблема, с которой вы столкнулись, связана с тем, что cloud-init не может обнаружить сетевое подключение на стадии инициализации, что приводит к ошибке cloud-init-nonet
. Это часто случается в виртуальных машинах, но в вашем случае — на физическом сервере. Давайте разберём подробности и возможные решения для вашей конфигурации.
Причины проблемы
Главной причиной, по которой cloud-init испытывает проблемы с обнаружением сети, может быть неправильная конфигурация сетевых интерфейсов или неправильная последовательность загрузки системных служб, например Open vSwitch.
Конфигурация сетевых интерфейсов
Ваш файл конфигурации /etc/network/interfaces
настроен с использованием Open vSwitch, и это может усложнить процесс инициализации сети. Этот файл содержит настройки для сетевых мостов и физических интерфейсов, которые могут не инициализироваться корректно из-за проблем с зависимостями или с порядком загрузки.
Решение проблемы
Для решения проблемы попробуйте следующие шаги:
- Убедитесь, что все необходимые зависимости установлены и правильно настроены, особенно Open vSwitch.
- Проверьте, что Open vSwitch и связанные службы запускаются раньше или одновременно с cloud-init. Мы можем заменить использование
auto
иiface
в файле конфигурации на системные юниты, которые гарантируют порядок загрузки. - Добавьте запуск перезагрузки сети в файл
/etc/rc.local
, чтобы принудительно инициализировать сеть после загрузки системы: - Попробуйте временно отключить cloud-init, если он действительно не требователен для вашей настройки, и проверьте, придёт ли это к улучшению.
- Если вы обнаружите, что проблема связана именно с Open vSwitch, постарайтесь проанализировать порядок загрузки и конфигурацию мостов.
sh /etc/init.d/networking restart
Эта команда поможет воссоздать сетевую конфигурацию в случае, если она не инициализировалась корректно изначально.
Заключение
Данный вопрос требует осторожного подхода, так как ошибка связана со стартовой конфигурацией сети, которая критична для работы вашей системы. При внесении изменений следите за тем, чтобы сохранять резервные копии всех конфигурационных файлов, чтобы иметь возможность откатиться к предыдущим настройкам в случае необходимости.
Если вышеуказанные шаги не решат проблему, возможно, стоит рассмотреть вариант поэтапной настройки сети и cloud-init, попробовав сначала базовую инициализацию без сложных конфигураций Open vSwitch.