钩子失败:“shared-db-relation-changed” 在与 Juju/MAAS 相同的系统中使用 OpenStack 时

钩子失败:“shared-db-relation-changed” 在与 Juju/MAAS 相同的系统中使用 OpenStack 时

我一直在尝试使用一台机器在 14.04 上设置 OpenStack。我已设法使用两台机器设置 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标志非常巧妙,可让您进行共置而不会发生灾难性冲突。支持类似and--to的语法,它将把服务放置在列出的机器上的容器中。OpenStack 部署中的几乎所有功能都可以安全地放置在 LXC(或 KVM)容器中,Ceph 和 nova-compute 除外。Nova-compute 是因为它本身将配置 VM(而 LXC 中的 KVM 很奇怪),而 Ceph 是因为它需要拥有磁盘。您可以在没有 Ceph 的情况下进行 OpenStack 部署,所以这不是问题,您可以嵌套 KVM,因此在 KVM 上使用 nova-compute 来创建 KVM(或 LXC)应该可以工作。--to lxc:0--to kvm:0

此时,一切都与性能有关,而您实际上不会通过此设置获得太多性能。但是,这应该足以试行该过程。

相关内容