我使用 Ubuntu 的 Autopilot (openstack-install) 安装了 Openstack。第一个环境的引导程序称为“maas”,是一台虚拟机,我从 openstack-installer 包中的工具文件夹中获取。
该 VM 中有六个容器,每个容器都有一个服务(apache2、haproxy、landscape、landscape-msg、postgresql 和 rabbitmq-server)。从 Landscape 容器“启动”另一个环境(在我的例子中称为“8”),其中有所有的 OpenStack 服务。
在我第一次重启之前,一切都运行正常。Landscape 无法访问,原因是对于 juju 来说,landscape 的 IP 为 10.0.3.1,这是桥 (lxcbr0) 的 IP 地址,而不是它的 eth0 IP 地址(在我的情况下是 10.222.221.140)。结果如何?当它尝试连接到 Landscape 时,它转到了 10.0.3.1,因此它转到了 VM,而不是运行 Landscape 的容器。
我发现这是一个 juju-core 错误,根据https://bugs.launchpad.net/juju-core/+bug/1416928,所以我将 juju-core 从 1.20.x 更新到了 1.21.3。重新启动后,它获取了正确的 IP,如下所示:
$ JUJU_HOME=~/.cloud-install/ juju status landscape/0
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.21.3.3
[...]
containers:
0/lxc/2:
agent-state: started
agent-version: 1.21.3.3
dns-name: 10.222.221.140
[...]
services:
landscape:
[...]
units:
landscape/0:
[...]
public-address: 10.222.221.140
问题是现在该服务没有运行:
景观/0:代理状态:错误代理状态信息:'挂钩失败:“配置已更改”'代理版本:1.21.3.3机器:0/lxc/2公共地址:10.222.221.140
我尝试过juju resolved --retry landscape/0
,但没有效果。有什么线索可以解释为什么会发生这种情况吗?
答案1
很高兴您能够使用较新版本的 Juju。
您粘贴的日志似乎是machine-0.log
,我们实际上需要查看/var/log/juju/unit-landscape-0.log
。如果有人再次看到此内容,请尝试以下操作:
juju run --service landscape,landscape-msg 'sudo lsctl restart'
这将在您的控制台上向您显示有关为什么无法启动的更多详细信息。