
Estou trabalhando com um problema bastante estranho usando MAAS e Juju, onde após o bootstrap, a máquina "0" foi criada com sucesso, não consigo implantar nenhum serviço emitindo um arquivo juju deploy mysql
. Para dar uma breve visão geral do ambiente, estou executando o MAAS no Ubuntu Server 13.04 com o IP 10.0.0.10 e juju
estou juju-core
executando no mesmo servidor. Tudo isso também é executado em um laboratório de testes localizado. A emissão de um juju status
revela o seguinte:
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
A instância permanece em um pending
estado indefinidamente e uma análise do log de depuração revela que não está sendo feita uma conexão para provisionar a instância:
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.
Agora, como esse erro está sendo gerado na máquina "0" a cada minuto, olhei para um tcpdump para tentar descobrir o que estava acontecendo. Depois de algumas pesquisas, descobri isso no momento exato em que o erro estava sendo registrado:
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
Como a máquina "0" foi implantada com MAAS via Juju, não acho que ela rodaria MAAS também. Para solucionar o problema, criei um túnel SSH na máquina "0" escutando na porta 80 (localhost) para a porta 80 do servidor MAAS, por exemplo, 80:MAAS-Server-IP:80. Depois disso, juju status
alterei para mostrar a nova máquina fora do estado pendente:
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
Tudo isso para dizer, alguém pode me ajudar a entender por que a máquina implantada "0" está tentando uma conexão com a porta 80 do host local em vez do servidor MAAS? Isso se deve ao fato de estar executando o Juju e o MAAS no mesmo servidor?
Responder1
Quando um ambiente é inicializado, você deve prestar atenção ao nome do host em ambientes.yaml, pois parece que é isso que é enviado para máquinas subsequentes. No meu caso, eu tinha o servidor configurado para http://localhost:80/MAAS
, fazendo com que a máquina "0", e qualquer outra máquina, tentasse fazer uma conexão com o host local e não com o IP/nome do host do servidor MAAS. Depois de destruir meu ambiente e inicializá-lo novamente com o servidor http://10.0.0.10:80/MAAS
, tudo pareceu ser implantado corretamente. Isto é totalmente um descuido da minha parte.