Die Openstack-Bereitstellung von Landscape schlägt in Configure Availability Zones fehl

8

Verwenden der aktuellen OpenStack Beta-Option von Landscape zum Bereitstellen von OpenStack in meinem MAAS-Setup. Ich bin zu 98% fertig, mit 1 Fehler bei "Verfügbarkeitszonen konfigurieren". Meine Einstellungen verwendeten KVM, Open vSwitch und ich verwende derzeit Ceph sowohl für die Objekt- als auch für die Blockspeicherung. Wenn ich mir das /var/log/landscape/job-handler-1.log auf dem Landschaftscomputer ansehe, werden über 100 Fehler angezeigt über:

2015-03-05 21:18:38 INFO root RetryingCall für '_get_nova_info' ist fehlgeschlagen und hat 103 weitere Zeit (en) versucht: 2015-03-05 21:18:38 INFO root Traceback :: Es fehlen 4 nova-compute-Einheiten
/ 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
--- < Ausnahme hier gefangen> ---
/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


HINWEIS : Die Zeilennummer in jobs.py ist deaktiviert, da ich einige Druckanweisungen zum Debuggen hinzugefügt habe. Es ist die Behauptung in der Funktion _get_nova_info () in der Nähe von Zeile # 741 (wenn Speicher dient), und ja, ich verwende die neueste Version von Landschaft ab heute aus der Landschaft ppa für vertrauenswürdig.

So modifizierte ich /opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py ‚s _get_nova_info () Funktion , um die Länge des auszudrucken nova_compute_hostnames und ich habe Null . Also habe ich das in /opt/canonical/landscape/canonical/landscape/model/openstack/region.py 's get_nova_compute_hostnames () gejagt und festgestellt, dass self.juju_environment.get_computer_ids (). Count () ebenfalls Null war . So fügte ich einen Aufruf an self.juju_environment.has_computers () und bekam falsch . Dann habe ich self.juju_environment.get_juju_home () ausgeführt und bekommen/ var / lib / Landschaft / Juju-Häuser / 20 . (Ja, dies ist mein 20. Versuch bei meinem zweiten Umbau der Landschaftsbox. Ich bin schon eine Weile dabei.) Also habe ich den Juju-Status mit dem oben erwähnten Juju-Haus ausgeführt und alles sah gut aus. Alle 5 Maschinen und Dienste wurden gestartet, keine ausstehenden oder fehlerhaften Zustände. (einschließlich der 4 Nova-Compute-Knoten) Irgendwelche Ideen? Ich bin etwas neu in Landschaft, MAAS, JUJU und Python, daher ist mein Debuggen etwas langsam.


UPDATE 1:

Auf Anfrage habe ich die 2 Protokolle (obwohl mein Zuhause jetzt # 23 ist) Juju Status und Broker.log . Ich glaube, ich weiß jetzt, was mein Problem ist, anhand des folgenden Ausschnitts von broker.log. (Danke, dpb, dass Sie mich dorthin geführt haben.) Mein MAAS-Computer gibt die DHCP-Adresse an meinen Landschafts-LXC weiter, aber mein Landschafts-LXC befindet sich nicht im MAAS-gesteuerten DNS, da er nicht von MAAS bereitgestellt wird. Daher können die bereitgestellten Computer keine namentliche Verbindung zum Landschaftsserver herstellen.

Das führt mich zu einer verwandten Frage: Gibt es eine gute Möglichkeit, MAAS das DNS automatisch mit Computern aktualisieren zu lassen, die nicht bereitgestellt werden (oder unter der Kontrolle von MAAS stehen)? Wenn nicht, muss ich ihm eine statische IP außerhalb meines DHCP-Bereichs geben und den DNS manuell einstellen.

2015-03-06 17: 09: 50,665 INFO [MainThread] Der Broker wurde mit config /etc/landscape/client.conf gestartet.
2015-03-06 17: 09: 52,382 INFO [MainThread] Startet den dringenden Nachrichtenaustausch mit https: // Landschaft / Nachrichtensystem .
2015-03-06 17: 09: 52,389 ERROR [PoolThread-twisted.internet.reactor-1] Fehler beim Kontaktieren des Servers unter https: // Landschaft / Nachrichtensystem .
Traceback (letzter Aufruf zuletzt):
Datei "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", Zeile 71, im Austausch
message_api)
Datei "/usr/lib/python2.7/ dist-packages / Landschaft / Broker / transport.py ", Zeile 45, in _curl
headers = headers, cainfo = self._pubkey, curl = curl))
Datei "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", Zeile 109, in Fetch
Raise PyCurlError (e.args [0], e.args 1 )
PyCurlError: Fehler 6: Könnte Host nicht auflösen
: Landscape 2015-03-06 17: 09: 52,390 INFO [MainThread] Nachrichtenaustausch fehlgeschlagen.
2015-03-06 17: 09: 52,391 INFO [MainThread] Der Nachrichtenaustausch wurde in 0,01 Sekunden abgeschlossen.


UPDATE 2:

Mein Setup ist etwas eingeschränkt, da ich nur 6 Computer (5 Knoten und 1 Controller) erhalten habe, um die Funktionen von OpenStack / Landscape zu demonstrieren, sodass ich keinen dedizierten Computer für Querformat verwenden kann. Ich habe den Landschafts-Server-Schnellstart in einem LXC auf meinem MAAS-Controller verwendet, damit ich ihn schnell wegblasen und neu beginnen kann.

Also habe ich das Querformat-Setup weggeblasen und den LXC auf eine statische IP eingestellt. Dann habe ich das DNS (gesteuert von MAAS) so geändert, dass es den statischen DNS-Eintrag für meinen Landschaftsserver enthält. Dann habe ich Landscape Dedicated Server auf dem LXC mit der oben erwähnten Landschafts-Server-Schnellstart-Methode installiert.

Nach dieser Neuinstallation (hauptsächlich, um all mein Debug-Chaos zu beseitigen) konnte ich OpenStack endlich im Querformat installieren. Vielen Dank.

Master5597
quelle

Antworten:

4

Die Meldung "Fehlende N Nova-Compute-Einheiten" bezieht sich auf Landschafts-Client-Agenten, die wieder im Querformat registriert sind. Überprüfen Sie /var/log/landscape/broker.logdie fehlenden Einheiten.

AKTUALISIEREN:

Wie Sie richtig identifiziert haben, funktionieren die Dinge am reibungslosesten, wenn LDS (Landscape Dedicated Server) auf demselben MAAS installiert ist, auf dem Ihr Openstack ausgeführt wird, hauptsächlich aufgrund von Netzwerkrouting und DNS. Es gibt jedoch unzählige Variationen einer gültigen Topologie mit Routen zwischen Netzwerken usw.

Einige Vorschläge für Dinge, die Sie ausprobieren sollten, lesen Sie bitte alle. Am Ende müssen Sie Ihre Bereitstellungstopologie bestimmen:

  • Stellen Sie LDS für einen Test auf demselben MAAS bereit, auf dem sich Ihr Openstack befindet - nur um zu überprüfen, ob dort etwas funktioniert. Verwenden Sie das Openstack-Installations- Tool oder das Bundle mit dichtem Maas und Juju-Schnellstart direkt, um dies zu erleichtern.

  • Ihre Kunden müssen in der Lage sein, LDS zu erreichen, wie Sie angegeben haben. Wenn sie per IP an den Ort weitergeleitet werden können, an dem LDS bereitgestellt wird, können Sie die Openstack-Installation beenden, die Einstellung für den Apache-Servernamen ändern und es erneut versuchen. juju set apache2 servername=IP_ADDRESS. Folgen Sie anschließend dem Juju-Debug-Protokoll, stellen Sie sicher, dass alles in Ordnung ist, und stellen Sie sicher, dass Sie unter der https: // IP_ADDRESS / URL zur LDS-GUI navigieren können .

dpb
quelle