Развертывание Openstack в альбомной среде завершается неудачно в настройке зон доступности

8

Используя текущую опцию «OpenStack Beta» от Landscape, чтобы развернуть OpenStack в моей настройке MAAS. Я получаю заполнение 98%, с 1 ошибкой в ​​«Настройка зон доступности». В моих настройках использовались KVM, Open vSwitch, и в настоящее время я использую Ceph для хранения объектов и блоков. Когда я смотрю на /var/log/landscape/job-handler-1.log на альбомной машине, вижу более 100 ошибок о:

2015-03-05 21:18:38 Не удалось выполнить корневой запрос INFO для '_get_nova_info', попытка выполнить еще 103 раза: 2015-03-05 21:18:38 Отслеживание корневого каталога INFO:: отсутствует 4 единицы nova-compute
/ usr /lib/python2.7/threading.py:783:__bootstrap
/usr/lib/python2.7/threading.py:810:__bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- < здесь обнаружена исключительная ситуация> ---
/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py:191:_worker
/usr/lib/python2.7/dist-packages/twisted/python/context. py: 118: callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py: 76: _wrap
/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py:751:_get_nova_info


ПРИМЕЧАНИЕ . Номер строки в jobs.py отключен, поскольку я добавил несколько операторов печати для отладки. Это утверждение в функции _get_nova_info () рядом со строкой # 741 (если память не изменяет), и да, я использую новейшую на сегодня версию landscapeing из ландшафта ppa для trusty.

Поэтому я изменил /opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py ' _get_nova_info () функцию, чтобы распечатать длину nova_compute_hostnames, и я получил ноль . Так что я гонялся , что в /opt/canonical/landscape/canonical/landscape/model/openstack/region.py «s get_nova_compute_hostnames () и обнаружил , что self.juju_environment.get_computer_ids (). Count () также нулю . Поэтому я добавил вызов self.juju_environment.has_computers () и получил значение false . Затем я запустил self.juju_environment.get_juju_home () и получил/ var / lib / landscape / juju-homes / 20 . (Да, это моя 20-я попытка перестроить ландшафтную коробку, я занимался этим некоторое время). Таким образом я управлял статусом дзюдо, используя дом дзюдо, упомянутый выше, и все выглядело хорошо. Все 5 машин и сервисов были запущены, состояния ожидания или ошибки отсутствуют. (включая 4 новых вычислительных узла) Есть идеи? Я немного новичок в ландшафте, MAAS, JUJU и Python, поэтому моя отладка немного медленная.


ОБНОВЛЕНИЕ 1:

По запросу у меня есть 2 журнала (хотя мой дом теперь № 23) статус juju и broker.log . Я думаю, что теперь я знаю, в чем моя проблема, согласно фрагменту broker.log ниже. (Спасибо dpb за указание на меня) Моя машина MAAS выдает адрес DHCP моему LXC с альбомной ориентацией, но мой LXC с альбомной ориентацией не находится в DNS, управляемом MAAS, поскольку он не предоставляется MAAS. Поэтому подготовленные машины не могут подключаться к серверу ландшафта по имени.

Так что это приводит меня к связанному вопросу, есть ли хороший способ, чтобы MAAS автоматически обновлял DNS с помощью компьютеров, которые не были подготовлены (или находятся под контролем MAAS)? Если нет, мне придется присвоить ему статический IP-адрес вне моего диапазона DHCP и вручную установить DNS.

2015-03-06 17: 09: 50,665 INFO [MainThread] Брокер запустил с конфигурацией /etc/landscape/client.conf 2015-03-06
17: 09: 52,382 INFO [MainThread] Запуск срочного обмена сообщениями с помощью https: // landscape / система сообщений .
2015-03-06 17: 09: 52,389 ОШИБКА [PoolThread-twisted.internet.reactor-1] Ошибка связи с сервером по адресу https: // landscape / message-system .
Трассировка (последний вызов был последним):
Файл "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", строка 71, в файле
message_api для обмена )
Файл "/usr/lib/python2.7/ dist-packages / landscape / broker / transport.py ", строка 45, в _curl
headers = headers, cainfo = self._pubkey, curl = curl))
Файл "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", строка 109, в порядке
повышения PyCurlError (e.args [0], e.args 1 )
PyCurlError: Ошибка 6: может не разрешен хост: ландшафт
2015-03-06 17: 09: 52,390 ИНФОРМАЦИЯ [MainThread] Ошибка обмена сообщениями.
2015-03-06 17: 09: 52,391 INFO [MainThread] Обмен сообщениями завершен за 0,01 с.


ОБНОВЛЕНИЕ 2:

Мои настройки немного ограничены, так как мне дали только 6 машин (5 узлов и 1 контроллер), чтобы показать возможности OpenStack / Landscape, поэтому я не могу использовать выделенную машину для ландшафта. Я использовал ландшафтный сервер- быстрый запуск в LXC на своем контроллере MAAS, чтобы я мог быстро его сдуть и начать все заново.

поэтому я отказался от настройки ландшафта и установил для LXC статический IP-адрес, затем изменил DNS (контролируемый MAAS), чтобы иметь статическую запись DNS для моего ландшафтного сервера. Затем я установил Landscape Ledicated Server на LXC, используя метод landscape-server-quickstart, упомянутый выше.

После этой переустановки (главным образом для очистки всего моего отладочного беспорядка) я наконец смог установить OpenStack через альбомную среду. Спасибо.

Master5597
источник

Ответы:

4

Сообщение «Missing N nova-compute units» относится к агентам-ландшафтным клиентам, зарегистрированным обратно в ландшафт. Проверьте /var/log/landscape/broker.logотсутствующие модули.

ОБНОВИТЬ:

Как вы правильно определили, все работает гладко, если LDS (выделенный сервер ландшафта) установлен на том же MAAS, где будет работать ваш openstack, в основном из-за сетевой маршрутизации и DNS. Однако существует множество вариантов допустимой топологии с маршрутами между сетями и т. Д.

Некоторые предложения о том, что можно попробовать, пожалуйста, прочитайте их все. В конце вам нужно будет определить топологию развертывания:

  • Для теста разверните LDS в том же MAAS, где будет ваш openstack - просто чтобы проверить, что там работает. Для этого воспользуйтесь инструментом openstack-install или пакетом landscape-density-maas с juju -quickstart.

  • Ваши клиенты должны иметь доступ к LDS, как вы заявили. Если они могут маршрутизировать по IP-адресу туда, где развернут LDS, вы можете разорвать установку openstack, изменить настройку имени сервера apache и повторить попытку. juju set apache2 servername=IP_ADDRESS, После этого следуйте за juju debug-log, убедитесь, что все идет хорошо, и убедитесь, что вы можете перейти к графическому интерфейсу LDS по адресу https: // IP_ADDRESS / URL.

РОП
источник