web-dev-qa-db-ja.com

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」で毎分程度発生しているため、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も実行されているとは思いません。この問題をトラブルシューティングするために、ポート80(localhost)でリッスンするマシン "0"に、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サーバーではなくlocalhostポート80への接続を試行している理由を誰かが私に理解できるように助けてくれませんか?これは、JujuとMAASを同じサーバーで実行しているためですか?

2
Timothy Lambert

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

3
Timothy Lambert