Wie stelle ich eine OpenStack-Cloud mit Juju bereit?


15

Ich möchte eine Testwolke in Betrieb nehmen, um mich auf eine mögliche Bereitstellung von 12.04 vorzubereiten. Ich habe ein bisschen mit der UEC rumgespielt, aber es war viel schwieriger, etwas Nützliches als Grundierung für den neuen Stack zu finden. Es gibt eine generische Dokumentation zu Diablo, aber es gibt wahrscheinlich eine Menge Dinge, die in Ubuntu bereits nützlich sind und mit denen eine bestimmte Anleitung Zeit sparen könnte.

Mein Budget umfasst auch nicht die 4 bis 6.000 USD, um einen kleinen Cluster mit Unterstützung von Canonical zum Laufen zu bringen.

Antworten:


17

OpenStack installieren

Wenn Sie schnell loslegen möchten, gehen Sie stattdessen hier:

Diese Antwort gibt einen genaueren Einblick in die Verwendung von Juju mit OpenStack.

Umfang

Die OpenStack-Plattform ist leistungsfähig und vielseitig einsetzbar. Dieser Abschnitt der Dokumentation befasst sich hauptsächlich mit der Bereitstellung eines "Standard" -Systems, auf dem OpenStack ausgeführt wird, unter Verwendung von Canonical-Komponenten wie MAAS, Juju und Ubuntu. Gegebenenfalls werden andere Methoden und Software erwähnt.

Annahmen

  1. Verwendung von MAAS - Befolgen Sie zuerst diese Anweisungen.
  2. Verwendung von Juju
  3. Lokale Netzwerkkonfiguration - In diesem Dokument wird davon ausgegangen, dass Sie über eine angemessene lokale Netzwerkkonfiguration verfügen, einschließlich separater Schnittstellen für den Zugriff auf die OpenStack-Cloud. Ideale Netzwerke sind in der [MAAS] [MAAS-Dokumentation für OpenStack] beschrieben.

Installation planen

Vor der Bereitstellung von Diensten ist es sehr nützlich, eine Bestandsaufnahme der verfügbaren Ressourcen und ihrer Verwendung vorzunehmen. OpenStack besteht aus einer Reihe von miteinander verbundenen Diensten (Nova, Swift usw.), die unterschiedliche Anforderungen an die Hosts stellen. Beispielsweise hat der Swift-Dienst, der Objektspeicher bereitstellt, eine andere Anforderung als der Nova-Dienst, der Rechenressourcen bereitstellt.

Die Mindestanforderungen für die einzelnen Dienste und Empfehlungen sind im offiziellen OpenStack-Betriebshandbuch aufgeführt

Die empfohlene Zusammensetzung der Knoten für die Bereitstellung von OpenStack mit MAAS und Juju ist, dass alle Knoten im System in der Lage sein sollten, JEDE der Dienste auszuführen . Dies ist eine bewährte Methode für die Robustheit des Systems. Da ein physischer Knoten ausfallen sollte, kann ein anderer als Ersatz für ihn verwendet werden. Dies gilt natürlich auch für Hardwareanforderungen wie zusätzliche Netzwerkschnittstellen.

Wenn Sie aus Gründen der Wirtschaftlichkeit oder aus anderen Gründen unterschiedliche Hardwarekonfigurationen verwenden, sollten Sie beachten, dass sich Ihre Fähigkeit zur Überwindung von Hardwarefehlern verringert. Es ist auch erforderlich, Bereitstellungen auf bestimmte Knoten auszurichten - siehe Abschnitt in der MAAS-Dokumentation zu Tags .

Erstellen Sie die OpenStack-Konfigurationsdatei

Wir werden Juju-Charms verwenden, um die Komponenten von OpenStack bereitzustellen. Jeder Charme umfasst alles, was zum Einrichten eines bestimmten Dienstes erforderlich ist. Die einzelnen Dienste verfügen jedoch über viele Konfigurationsoptionen, von denen wir einige ändern möchten.

Um diese Aufgabe einfacher und reproduzierbarer zu machen, erstellen wir eine separate Konfigurationsdatei mit den entsprechenden Optionen für alle Dienste. Dies ist in einem Standard-YAML-Format geschrieben ( siehe www.yaml.org, falls Ihnen dies nicht vertraut ist ).

Hier ist ein Beispiel für eine openstack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Für alle Dienste können wir das so konfigurieren openstack-origin, dass es auf eine Installationsquelle verweist. In diesem Fall verlassen wir uns auf den Standard, der auf die relevanten Quellen für das Ubuntu 14.04 LTS Trusty-Release verweist. Weitere Informationen zur Konfiguration der einzelnen Dienste finden Sie in diesem Dokument .

Andere Konfigurationen

Für die Bereitstellung der OpenStack-Dienste sind andere Einstellungen und Konfigurationsoptionen möglich. Diese sind in der Dokumentation der einzelnen von Juju verwendeten Charms detailliert aufgeführt. Sie können sie einsehen, indem Sie den Online-Juju-Charm-Store besuchen und über das Suchfeld oben links auf der Seite nach dem Charm suchen. Die Konfigurationseinstellungen werden dann unter "Konfiguration" auf der Hauptseite wie folgt aufgeführt:

Bildbeschreibung hier eingeben

OpenStack mit Juju bereitstellen

Nachdem die Konfiguration definiert wurde, können wir Juju verwenden, um die Dienste bereitzustellen und zu verknüpfen.

Initialisierung von Juju

Juju erfordert eine minimale Menge an Setup. In diesem Fall wird davon ausgegangen, dass es bereits für die Zusammenarbeit mit Ihrem MAAS-Cluster konfiguriert wurde (weitere Informationen hierzu finden Sie im [Juju-Installationshandbuch] [juju_install].

Erstens müssen wir Bilder und Werkzeuge abrufen, die Juju verwenden wird:

juju sync-tools --debug

Dann können wir die Bootstrap-Instanz erstellen:

juju bootstrap --upload-tools --debug

Wir verwenden den Upload-Tools-Schalter, um die lokalen Versionen der Tools zu verwenden, die wir gerade abgerufen haben. Der Debug-Schalter gibt eine ausführliche Ausgabe aus, die nützlich sein kann. Dieser Vorgang kann einige Minuten dauern, da Juju eine Instanz erstellt und die Tools installiert. Wenn es fertig ist, können Sie den Status des Systems mit dem folgenden Befehl überprüfen:

juju status

Dies sollte ungefähr so ​​aussehen:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Stellen Sie die OpenStack Charms bereit

Jetzt, da der Juju-Bootstrap-Knoten aktiv ist, können wir die Dienste bereitstellen, die für die OpenStack-Installation erforderlich sind. Um diese Dienste bei der Bereitstellung ordnungsgemäß zu konfigurieren, verwenden wir die zuvor definierte Konfigurationsdatei, indem wir sie --configbei jedem Bereitstellungsbefehl zusammen mit dem Switch übergeben. Ersetzen Sie gegebenenfalls den Namen und den Pfad Ihrer Konfigurationsdatei.

Es ist nützlich, aber nicht unbedingt erforderlich, die Dienste in der unten angegebenen Reihenfolge bereitzustellen. Es wird außerdem dringend empfohlen, ein zusätzliches Terminalfenster zu öffnen und den Befehl auszuführen juju debug-log. Dadurch werden die Protokolle aller ausgeführten Dienste ausgegeben. Dies kann bei der Fehlerbehebung hilfreich sein.

Es wird außerdem empfohlen, juju statusregelmäßig einen Befehl auszuführen , um zu überprüfen, ob die einzelnen Dienste installiert wurden und ordnungsgemäß ausgeführt werden. Juju wird automatisch versuchen, die bestmögliche Version des Charms aus dem Online Charm Store zu holen. Wenn Sie von einem eingeschränkten oder geschlossenen Netzwerk aus installieren, können Sie die erforderlichen Charms vorab abrufen. Siehe [die Dokumentation für Offline-Charms] [charms-offline].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Fügen Sie Beziehungen zwischen den OpenStack-Diensten hinzu

Obwohl die Dienste jetzt bereitgestellt werden, sind sie noch nicht miteinander verbunden. Jeder Dienst ist derzeit isoliert vorhanden. Wir verwenden den juju add-relation Befehl, um sie voneinander in Kenntnis zu setzen und relevante Verbindungen und Protokolle einzurichten. Diese zusätzliche Konfiguration wird durch die individuellen Reize selbst erledigt.

Wir sollten damit beginnen, Beziehungen zwischen Charms hinzuzufügen, indem wir den Keystone-Autorisierungsdienst und seine Datenbank einrichten, da dies von vielen anderen Verbindungen benötigt wird:

juju add-relation keystone mysql

Wir warten, bis die Beziehung hergestellt ist. Nachdem es fertig ist, überprüfe es mit dem Juju-Status:

juju status mysql
juju status keystone

Es kann einige Momente dauern, bis sich dieser Service erledigt hat. Obwohl es durchaus möglich ist, weitere Relationen hinzuzufügen (Juju verwaltet eine Warteschlange für ausstehende Aktionen), kann dies in Bezug auf die Gesamtzeit kontraproduktiv sein, da sich viele Relationen auf dieselben Services beziehen.

Die folgenden Beziehungen müssen ebenfalls hergestellt werden:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

Schließlich sollte die Ausgabe des Juju-Status alle Beziehungen als vollständig anzeigen. Die OpenStack-Cloud wird jetzt ausgeführt, muss jedoch mit einigen zusätzlichen Komponenten gefüllt werden, bevor sie verwendet werden kann.




Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.