Erro de conexão pós-bootstrap MAAS e Juju

Erro de conexão pós-bootstrap MAAS e Juju

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 jujuestou juju-coreexecutando no mesmo servidor. Tudo isso também é executado em um laboratório de testes localizado. A emissão de um juju statusrevela 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 pendingestado 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 statusalterei 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.

informação relacionada