
MAAS와 Juju를 사용하여 부트스트랩 후 머신 "0"이 성공적으로 생성된 후 간단한 juju deploy mysql
. 간략한 환경 개요를 제공하기 위해 IP 10.0.0.10을 사용하여 Ubuntu Server 13.04에서 MAAS를 실행하고 있으며 juju
동일한 juju-core
서버에서 실행 중입니다. 이 모든 작업은 현지화된 테스트 랩에서도 실행됩니다. a를 발행하면 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도 실행될 것이라고 생각하지 않습니다. 문제를 해결하기 위해 포트 80(localhost)에서 MAAS 서버 포트 80(예: 80:MAAS-Server-IP:80)을 수신하는 "0" 머신에 SSH 터널을 만들었습니다. 그 후 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
환경이 부트스트랩될 때 Environment.yaml의 호스트 이름에 주의를 기울여야 합니다. 이는 후속 시스템으로 푸시되는 것으로 나타나기 때문입니다. 내 경우에는 서버를 로 설정하여 http://localhost:80/MAAS
시스템 "0"과 해당 문제에 대한 다른 시스템이 MAAS 서버의 IP/호스트 이름이 아닌 localhost에 연결을 시도하도록 했습니다. 내 환경을 파괴하고 서버로 다시 부트스트래핑한 후에 http://10.0.0.10:80/MAAS
모든 것이 올바르게 배포되는 것처럼 보였습니다. 이건 전적으로 내 실수다.