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.