Hook fehlgeschlagen: „shared-db-relation-changed“ bei Verwendung von OpenStack im selben System wie Juju/MAAS

Hook fehlgeschlagen: „shared-db-relation-changed“ bei Verwendung von OpenStack im selben System wie Juju/MAAS

Ich habe versucht, OpenStack auf 14.04 mit einer Maschine einzurichten. Ich habe es geschafft, MAAS einzurichten und JUJU mit zwei Maschinen zu booten, eine Maschine für MAAS und einen anderen Knoten, auf dem ich versuche, OpenStack einzurichten. Ich habe gelesen, dass es möglich ist, aber ich habe Probleme, im Grunde genommen, nachdem ich dies gelesen habehttps://help.ubuntu.com/community/UbuntuCloudInfrastructureund beim Stöbern im Internet habe ich herausgefunden, dass Nova-Volume veraltet ist. Deshalb habe ich versucht, stattdessen Cinder zu verwenden.

Ich habe diese Befehle verwendet:

juju deploy mysql --to 0
juju deploy rabbitmq-server --to 0
juju deploy --config=openstack.cfg keystone --to 0
juju deploy --config=openstack.cfg nova-cloud-controller --to 0
juju deploy --config=openstack.cfg cinder --to 0
juju deploy nova-compute --to 0
juju deploy glance --to 0
juju deploy openstack-dashboard --to 0

juju add-relation keystone mysql

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 cinder nova-cloud-controller
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder keystone

juju add-relation nova-compute mysql
juju add-relation nova-compute:amqp rabbitmq-server:amqp
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 openstack-dashboard keystone

juju expose openstack-dashboard
juju expose nova-cloud-controller

Wie Sie sehen, habe ich immer --to 0gesagt, dass ich sie alle auf demselben Knoten haben möchte. Ich kann alles starten, aber nachdem ich alle Beziehungen verknüpft habe, erhalte ich diesen Fehler:

hook failed: "shared-db-relation-changed"

In einem der Protokolle steht außerdem eine Fehlermeldung, dass dem Benutzer und dieser IP der Zugriff verweigert wurde.

Ich glaube, das Problem besteht darin, dass Juju den anderen Diensten mitteilt, dass die IP 192.168.2.101 ist, MySQL dann aber die Benutzer mit 127.0.0.1 einrichtet, was bedeutet, dass sie keine Verbindung herstellen können.

Irgendwelche Ideen?

Andere Dinge:

  • Dies wird hoffentlich für eine private Cloud bei der Arbeit mit etwa einem halben Dutzend Instanzen verwendet.
  • Ich möchte Devstack nicht verwenden, da alle immer sagen, dass es nicht für die Produktion geeignet ist.

Antwort1

Die Verwendung von --toFlags ohne Containerisierung ist eine wirklich schlechte Idee. Wir haben dies mit „Hulk Smashing“ verglichen. Im Grunde schichten Sie eine Menge Dienste übereinander, die alle erwarten, die Maschine zu besitzen.

Was also können Sie tun, um eine Isolation zu erreichen und trotzdem alles auf einer Maschine zu behalten? Containerisierung!

Das --toFlag hat eine Finesse, die Ihnen Co-Location ohne das Risiko katastrophaler Kollisionen ermöglicht. --tounterstützt eine Syntax wie --to lxc:0und --to kvm:0, die den Dienst in Containern auf der aufgelisteten Maschine platziert. Fast alle Charms in der OpenStack-Bereitstellung können sicher in LXC- (oder KVM-)Containern platziert werden, mit Ausnahme von Ceph und Nova-Compute. Nova-Compute, weil es selbst VMs bereitstellt (und KVM innerhalb von LXC ist seltsam) und Ceph, weil es eigene Festplatten benötigt. Sie können eine OpenStack-Bereitstellung ohne Ceph durchführen, das ist also kein Problem, und Sie können KVM verschachteln, also sollte Nova-Compute auf KVM zum Erstellen von KVMs (oder LXC) funktionieren.

An diesem Punkt dreht sich alles um Leistung und davon werden Sie mit diesem Setup nicht wirklich viel bekommen. Für einen Pilotversuch sollte es jedoch ausreichen.

verwandte Informationen