MAAS 和 Juju 引导后连接错误

MAAS 和 Juju 引导后连接错误

我正在使用 MAAS 和 Juju 处理一个相当奇怪的问题,在引导程序成功创建机器“0”后,我无法部署任何服务,只需发出一个简单的juju deploy mysql。为了给出一个简短的环境概述,我在 Ubuntu Server 13.04 上运行 MAAS,IP 为 10.0.0.10,并且jujujuju-core同一台服务器上运行。这些也都在本地测试实验室中运行。发出 会juju status显示以下内容:

root@maas:~# juju status
2013-04-30 10:24:32,876 INFO Connecting to environment...
2013-04-30 10:24:33,439 INFO Connected to environment.
machines:
  0:
    agent-state: not-started
    dns-name: test4.master
    instance-id: /MAAS/api/1.0/nodes/node-ee044686-b100-11e2-9927-52540089abb8/
    instance-state: unknown
  5:
    instance-id: pending
services:
  mysql:
    charm: cs:precise/mysql-19
    relations: {}
    units:
      mysql/0:
        agent-state: pending
        machine: 5
        public-address: null
2013-04-30 10:24:33,496 INFO 'status' command finished successfully

该实例无限期地保持某种pending状态,查看调试日志可发现没有建立连接来配置该实例:

2013-04-30 10:27:26,562: juju.agents.provision@ERROR: Cannot get machine list
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/juju/agents/provision.py", line 175, in process_machines
    provider_machines = yield self.provider.get_machines()
ProviderInteractionError: Unexpected ConnectionRefusedError interacting with provider: Connection was refused by other side: 111: Connection refused.

现在,由于此错误每隔一分钟左右就会在机器“0”上生成一次,因此我查看了 tcpdump 以尝试找出发生了什么。经过一番挖掘,我在记录错误的确切时间发现了这一点:

10:27:26.561631 IP 127.0.0.1.33607 > 127.0.0.1.80: Flags [S], seq 1222093882, win 32792, options [mss 16396,sackOK,TS val 454628 ecr 0,nop,wscale 6], length 0
10:27:26.561651 IP 127.0.0.1.80 > 127.0.0.1.33607: Flags [R.], seq 0, ack 1222093883, win 0, length 0

由于机器“0”是通过 Juju 部署 MAAS 的,我认为它也不会运行 MAAS。为了解决这个问题,我在机器“0”上创建了一个 SSH 隧道,监听端口 80(localhost)到 MAAS 服务器端口 80,例如 80:MAAS-Server-IP:80。之后,juju status更改为显示新机器脱离待处理状态:

  5:
    agent-state: not-started
    dns-name: test5.master
    instance-id: /MAAS/api/1.0/nodes/node-fe882bb2-b100-11e2-ba1c-52540089abb8/
    instance-state: unknown

综上所述,有人能帮我理解为什么部署的机器“0”试图连接到本地主机端口 80 而不是 MAAS 服务器吗?这是因为我在同一台服务器上运行 Juju 和 MAAS 吗?

答案1

当环境启动时,您必须注意 environment.yaml 中的主机名,因为它似乎是推送到后续机器的内容。就我而言,我将服务器设置为http://localhost:80/MAAS,从而导致机器“0”以及任何其他机器尝试连接到 localhost 而不是 MAAS 服务器的 IP/主机名。在破坏我的环境并使用服务器再次启动它之后http://10.0.0.10:80/MAAS,一切似乎都正确部署了。这完全是我的疏忽。

相关内容