Wdrożenie systemu Openstack w programie Landscape nie powiedzie się w obszarze Konfiguruj strefy dostępności

8

Korzystanie z opcji „OpenStack Beta” obecnego programu Landscape w celu wdrożenia OpenStack w mojej konfiguracji MAAS. Osiągam 98% ukończenia, z 1 błędem „Konfiguruj strefy dostępności”. Moje ustawienia korzystały z KVM, Open vSwitch, a obecnie używam Ceph zarówno do przechowywania obiektów, jak i bloków. Gdy patrzę na plik /var/log/landscape/job-handler-1.log na maszynie poziomej, pojawia się ponad 100 błędów dotyczących:

2015-03-05 21:18:38 INFO root Ponawianie próby wywołania „_get_nova_info” nie powiodło się, próba 103 razy więcej: 2015-03-05 21:18:38 INFO root Traceback:: Brak 4 jednostek 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
--- < wychwycono wyjątek tutaj --- ---
/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


UWAGA : Numer wiersza w jobs.py jest wyłączony, ponieważ dodałem kilka instrukcji drukowania do debugowania. Jest to potwierdzenie w funkcji _get_nova_info () w pobliżu linii nr 741 (jeśli pamięć służy), i tak, używam najnowszej wersji pejzażu z dzisiaj z ppa krajobrazu do zaufanego.

Więc zmodyfikowany /opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py „s _get_nova_info () funkcji, aby wydrukować długość nova_compute_hostnames i mam do zera . Więc przeszukałem to w /opt/canonical/landscape/canonical/landscape/model/openstack/region.py 's get_nova_compute_hostnames () i stwierdziłem, że self.juju_environment.get_computer_ids (). Count () również było zerowe . Dodałem więc wywołanie do self.juju_environment.has_computers () i otrzymałem fałsz . Potem uruchomiłem self.juju_environment.get_juju_home () i dostałem/ var / lib / landscape / juju-homes / 20 . (Tak, to moja dwudziesta próba mojej drugiej przebudowy pudełka z krajobrazem, byłem przy tym przez jakiś czas). Więc uruchomiłem status juju, korzystając ze wspomnianego wyżej domu juju i wszystko wyglądało dobrze. Wszystkie 5 maszyn i usług zostały uruchomione, bez stanów oczekujących lub błędów. (w tym 4 węzły obliczeniowe nova) Jakieś pomysły? Jestem trochę nowy w krajobrazie, MAAS, JUJU i python, więc moje debugowanie jest trochę wolne.


AKTUALIZACJA 1:

Na żądanie mam 2 logi (chociaż mój dom ma teraz numer 23) status juju i broker.log . Myślę, że teraz wiem, na czym polega mój problem na podstawie fragmentu broker.log poniżej. (Dzięki dpb za wskazanie mnie tam). Moja maszyna MAAS podaje adres DHCP do mojego krajobrazu LXC, ale mój krajobraz LXC nie znajduje się w DNS kontrolowanym przez MAAS, ponieważ nie jest udostępniany przez MAAS. Dlatego udostępnione komputery nie mogą połączyć się z serwerem krajobrazu według nazwy.

To prowadzi mnie do pokrewnego pytania: czy istnieje dobry sposób, aby MAAS automatycznie aktualizował DNS za pomocą komputerów, które nie są obsługiwane (lub pod kontrolą MAAS)? Jeśli nie, będę musiał podać statyczny adres IP poza moim zakresem DHCP i ręcznie ustawić DNS.

2015-03-06 17: 09: 50,665 INFO [MainThread] Broker uruchomiono z config /etc/landscape/client.conf 2015-03-06
17.03.2009: 52,382 INFO [MainThread] Rozpoczęcie pilnej wymiany wiadomości z https: // landscape / system wiadomości .
2015-03-06 17: 09: 52 389 BŁĄD [PoolThread-twisted.internet.reactor-1] Błąd podczas łączenia się z serwerem na https: // landscape / message-system .
Traceback (ostatnie ostatnie połączenie):
Plik „/usr/lib/python2.7/dist-packages/landscape/broker/transport.py”, wiersz 71, w zamian
message_api)
Plik „/usr/lib/python2.7/ dist-packages / landscape / broker / transport.py ", wiersz 45, w
nagłówkach _curl = nagłówki, cainfo = self._pubkey, curl = curl))
Plik „/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py”, wiersz 109, w
podniesieniu pobierania PyCurlError (e.args [0], e.args 1 )
PyCurlError: Błąd 6: Może nie rozwiązuje hosta: krajobraz
2015-03-06 17: 09: 52,390 INFO [MainThread] Wymiana wiadomości nie powiodła się.
2015-03-06 17: 09: 52 391 INFO [MainThread] Wymiana wiadomości zakończona za 0,01 s.


AKTUALIZACJA 2:

Moja konfiguracja jest nieco ograniczona, ponieważ dostałem tylko 6 komputerów (5 węzłów i 1 kontroler), aby pokazać możliwości OpenStack / Landscape, więc nie mogę używać dedykowanej maszyny do krajobrazu. Korzystałem z szybkiego uruchamiania serwera krajobrazu w LXC na moim kontrolerze MAAS, aby szybko go zdmuchnąć i zacząć od nowa.

więc zdmuchnąłem konfigurację poziomą i ustawiłem LXC na statyczny adres IP, a następnie zmodyfikowałem DNS (kontrolowany przez MAAS), aby mieć statyczny wpis DNS dla mojego serwera krajobrazowego. Następnie zainstalowałem Landscape Dedicated Server na LXC, używając wspomnianej wyżej metody szybkiego uruchamiania serwera krajobrazowego.

Po tej ponownej instalacji (głównie w celu wyczyszczenia całego mojego debugującego bałaganu) w końcu mogłem zainstalować OpenStack za pośrednictwem krajobrazu. Dzięki.

Master5597
źródło

Odpowiedzi:

4

Komunikat „Brakujące nowe jednostki obliczeniowe” dotyczy agentów klienta krajobrazu zarejestrowanych z powrotem do krajobrazu. Sprawdź /var/log/landscape/broker.logbrakujące jednostki.

AKTUALIZACJA:

Jak prawidłowo zidentyfikowałeś, wszystko działa płynniej, jeśli LDS (Landscape Dedicated Server) jest zainstalowany na tym samym MAAS, na którym będzie działał Twój openstack, głównie z powodu routingu sieciowego i DNS. Istnieją jednak niezliczone warianty prawidłowej topologii z trasami między sieciami itp.

Kilka propozycji wypróbowania, przeczytaj je wszystkie. Na koniec musisz określić swoją topologię wdrażania:

  • Aby przetestować, zainstaluj LDS w tym samym MAAS, w którym będzie twój openstack - po prostu sprawdź, czy tam działa. Aby to ułatwić, użyj narzędzia openstack-install lub pakietu krajobraz-gęsty-maas z juju-quickstart.

  • Twoi klienci muszą być w stanie dotrzeć do LDS, jak już powiedziałeś. Jeśli mogą przekierowywać według adresu IP do miejsca, w którym wdrożony jest LDS, możesz zburzyć instalację openstack, zmienić ustawienie nazwy serwera apache i spróbować ponownie. juju set apache2 servername=IP_ADDRESS. Po wykonaniu tej czynności, postępuj zgodnie z dziennikiem debugowania juju, upewnij się, że wszystko jest OK, i upewnij się, że możesz przeglądać GUI LDS pod tym adresem https: // IP_ADDRESS / URL.

dpb
źródło