Landscape的Openstack部署在“配置可用区”上失败


8

使用当前的Landscape的“ OpenStack Beta”选项在我的MAAS设置上部署OpenStack。我完成了98%,在“配置可用性区域”上出现1个故障。我的设置使用了KVM,Open vSwitch,目前我使用Ceph来存储对象和块。当我在景观机器上查看/var/log/landscape/job-handler-1.log时,看到有关以下内容的100多个错误:

2015-03-05 21:18:38 INFO root RetryingCall for'_get_nova_info'失败,尝试了103次以上的时间:2015-03-05 21:18:38 INFO root Traceback::缺少4个nova-compute单位
/ usr /lib/python2.7/threading.py:783:__bootstrap
/usr/lib/python2.7/threading.py:810:__bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- <在这里捕获到异常>--/
usr/
lib/ python2.7/ dist-packages/ twisted/ python/ threadpool.py: 191: _worker /usr/lib/python2.7/dist-packages/twisted/python/context。 py:118:callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py: 76:_wrap
/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py:751:_get_nova_info


注意:Jobs.py中的行号已关闭,因为我添加了一些用于调试的打印语句。这是在#741行附近的_get_nova_info()函数中的断言(如果有内存可用的话),是的,我正在使用landscape ppa中截至今天的最新版本的landscape来进行信任。

所以我修改/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py_get_nova_info()函数来打印出的长度nova_compute_hostnames,我得到了。所以我把它追到/opt/canonical/landscape/canonical/landscape/model/openstack/region.pyget_nova_compute_hostnames()中,发现self.juju_environment.get_computer_ids()。count()为零。所以我添加了对self.juju_environment.has_computers()的调用,并得到false。然后我运行了self.juju_environment.get_juju_home()并得到了/ var / lib / landscape / juju-homes / 20。(是的,这是我第二次重建景观盒的尝试,我已经有一段时间了。)因此,我利用上面提到的枣家跑到了枣的地位,看上去一切都很好。所有5台机器和服务均已启动,没有挂起或错误状态。(包括4个nova-compute节点)有什么想法吗?我对景观,MAAS,JUJU和python还是有些陌生,所以调试有点慢。


更新1:

根据请求,我有2条日志(尽管我的家现在是#23) juju statusbroker.log。我想我现在知道下面的broker.log片段存在的问题。(感谢dpb将我指向那里。)我的MAAS机器正在向我的风景LXC提供DHCP地址,但是我的风景LXC不在MAAS控制的DNS中,因为它不是由MAAS设置的。因此,配置的计算机无法按名称连接到风景服务器。

因此,这引出了一个相关的问题,是否有一种很好的方法让MAAS使用未配置的计算机(或在MAAS控制下)自动更新DNS?如果没有,我将不得不给它一个超出DHCP范围的静态IP,并手动设置DNS。

2015-03-06 17:09:50,665 INFO [MainThread]代理从config /etc/landscape/client.conf启动
2015-03-06 17:09:52,382 INFO [MainThread]与https:// landscape开始紧急消息交换/ message-system
2015-03-06 17:09:52,389错误[PoolThread-twisted.internet.reactor-1]在https:// landscape / message-system处联系服务器时出错。
追溯(最近一次通话最近):
文件“ /usr/lib/python2.7/dist-packages/landscape/broker/transport.py”,行71,在交换
message_api中)
文件“ /usr/lib/python2.7/ dist-packages / landscape / broker / transport.py“,第45行,位于_curl
标头=标头,cainfo = self._pubkey,curl = curl))
文件“ /usr/lib/python2.7/dist-packages/landscape/lib/fetch.py​​”,第109行,在抓取时
引发PyCurlError(e.args [0],e.args 1
PyCurlError:错误6:可能无法解析主机:landscape
2015-03-06 17:09:52,390 INFO [MainThread]消息交换失败。
2015-03-06 17:09:52,391信息[MainThread]消息交换在0.01秒内完成。


更新2:

我的设置有点受限制,因为我仅获得了6台机器(5个节点和1个控制器)来展示OpenStack / Landscape的功能,所以我不能使用专用的机器来进行景观设计。我在MAAS控制器的LXC中使用了landscape-server-quickstart,因此我可以快速删除它并重新开始。

因此我取消了格局设置,并将LXC设置为静态IP,然后修改了DNS(由MAAS控制)以为我的格局服务器提供静态DNS条目。然后,我使用上述的landscape-server-quickstart方法在LXC上安装了Landscape专用服务器。

重新安装后(主要是为了清除所有调试混乱),我终于能够通过横向安装OpenStack。谢谢。

Answers:


4

“缺少N个新计算单位”消息是关于注册回景观的景观客户端代理的信息,请检查/var/log/landscape/broker.log缺失的单位。

更新:

如您所正确识别的那样,如果将LDS(横向专用服务器)安装到您的OpenStack所在的MAAS中,则工作最顺利,这主要是由于网络路由和DNS。但是,有效拓扑存在无数种变化,其中网络之间存在路由等。

有关尝试尝试的一些建议,请全部阅读。最后,您需要确定您的部署拓扑:

  • 为了进行测试,请将LDS部署到您的openstack所在的MAAS上,只是检查那里的一切是否正常。请直接使用openstack-install工具或结合juju-quickstart 的landscape-dense-maas捆绑软件来简化此操作。

  • 如您所述,您的客户需要能够获得LDS。如果他们可以通过IP路由到部署LDS的位置,则可以取消openstack安装,更改apache服务器名设置,然后重试。 juju set apache2 servername=IP_ADDRESS。之后,按照juju debug-log进行操作,确保一切正常,并确保您可以通过https:// IP_ADDRESS / URL 浏览到LDS GUI 。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.