MAAS 和 Juju 引導後連接錯誤

MAAS 和 Juju 引導後連接錯誤

我正在使用 MAAS 和 Juju 處理一個相當奇怪的問題,在引導程式成功創建機器“0”之後,我無法部署任何發出簡單juju deploy mysql.為了提供一個簡要的環境概述,我在 Ubuntu Server 13.04 上執行 MAAS,IP 為 10.0.0.10,並且jujujuju-core同一台伺服器上執行。這也全部在本地測試實驗室中運行。發出 ajuju 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(本機主機)上偵聽 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

引導環境時,您必須注意environments.yaml 中的主機名,因為它似乎是推送到後續電腦的主機名稱。就我而言,我將伺服器設為http://localhost:80/MAAS,導致機器「0」以及與此相關的任何其他機器嘗試連接到 localhost 而不是 MAAS 伺服器的 IP/主機名稱。在破壞我的環境並使用伺服器再次引導它之後http://10.0.0.10:80/MAAS,一切似乎都正確部署。這完全是我的疏忽。

相關內容