Ошибка хука: «shared-db-relation-changed» при использовании OpenStack в той же системе, что и Juju/MAAS

Ошибка хука: «shared-db-relation-changed» при использовании OpenStack в той же системе, что и Juju/MAAS

Я пытаюсь настроить OpenStack на 14.04, используя одну машину. Мне удалось настроить MAAS и запустить JUJU с двумя машинами, одна машина для MAAS и другой узел, на котором я пытаюсь настроить OpenStack. Я читал, что это можно сделать, но у меня возникли проблемы, в основном после прочтения этогоhttps://help.ubuntu.com/community/UbuntuCloudInfrastructureи покопавшись в интернете, я обнаружил, что nova-volume устарел, поэтому я пытаюсь использовать вместо него cinder.

Я использовал следующие команды:

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

Как вы видите, я обычно --to 0говорю, что хочу, чтобы они все были на одном узле. Я могу все запустить, но после связывания всех отношений я получаю эту ошибку:

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

У меня также в одном из журналов есть сообщение об ошибке, в котором говорится, что доступ запрещен для этого пользователя и этого IP.

Я полагаю, что проблема в том, что juju сообщает другим службам, что IP-адрес — 192.168.2.101, но затем mysql настраивает пользователей на 127.0.0.1, из-за чего они не могут подключиться.

Есть идеи?

Другие вещи:

  • Надеюсь, это будет использоваться для создания частного облака на работе с полудюжиной или около того экземпляров.
  • Я не хочу использовать DevStack, так как все говорят, что он не предназначен для производства.

решение1

Использование --toфлага без контейнеризации — действительно плохая идея. Мы сравнили это с «разбиванием Халка». По сути, вы накладываете друг на друга кучу сервисов, которые все ожидают владеть машиной.

Итак, что можно сделать, чтобы добиться изоляции и при этом хранить все на одной машине? Контейнеризация!

Флаг --toимеет изящество, которое позволяет вам выполнять совместное размещение без возможности катастрофических коллизий. --toподдерживает синтаксис типа --to lxc:0и --to kvm:0, который поместит службу в контейнеры на указанной машине. Почти все прелести развертывания OpenStack можно безопасно разместить в контейнерах LXC (или KVM), за исключением Ceph и nova-compute. Nova-compute, потому что он сам по себе будет предоставлять виртуальные машины (а KVM внутри LXC — это странно), а Ceph, потому что ему нужно владеть дисками. Вы можете выполнить развертывание OpenStack без Ceph, так что это не проблема, и вы можете вложить KVM, поэтому nova-compute на KVM для создания KVM (или LXC) должен работать.

На этом этапе все дело в производительности, а с этой настройкой вы ее не получите. Однако этого должно быть достаточно для пилотирования процесса.

Связанный контент