MAAS および Juju ブートストラップ後の接続エラー

MAAS および Juju ブートストラップ後の接続エラー

私は MAAS と Juju を使用しているときに、ブートストラップ後にマシン "0" が正常に作成されたものの、単純な を発行してもサービスをデプロイできないという、かなり奇妙な問題に取り組んでjuju deploy mysqlいます。環境の概要を簡単に説明すると、私は IP 10.0.0.10 の Ubuntu Server 13.04 で MAAS を実行しており、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」で 1 分おきに生成されるため、何が起こっているのかを調べるために 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」にポート 80 (localhost) で MAAS サーバー ポート 80 をリッスンする SSH トンネルを作成しました (例: 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」が MAAS サーバーではなく、ローカルホストのポート 80 に接続しようとしている理由を誰か理解してもらえませんか? これは、Juju と MAAS を同じサーバー上で実行しているためでしょうか?

答え1

環境がブートストラップされるとき、environments.yaml のホスト名に注意する必要があります。これは、後続のマシンにプッシュされるものだからです。私の場合、サーバーを に設定していたためhttp://localhost:80/MAAS、マシン「0」やその他のマシンは、MAAS サーバーの IP/ホスト名ではなく、localhost への接続を試行していました。環境を破棄し、サーバー で再度ブートストラップするとhttp://10.0.0.10:80/MAAS、すべてが正しくデプロイされたように見えました。これは完全に私の見落としです。

関連情報