Erro de conexão do MAAS e do Juju Post-Bootstrap

2

Estou trabalhando com um problema bastante estranho usando o MAAS e o Juju, onde, após o bootstrap, a máquina "0" foi criada com sucesso, não consigo implantar nenhum serviço que emite um juju deploy mysql simples. Para fornecer 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 e juju-core estão sendo executados no mesmo servidor. Tudo isso é executado em um laboratório de testes localizado também. Emitir 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 estado pending indefinidamente e uma olhada no log de depuração revela que uma conexão não está sendo feita 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, examinei um tcpdump para tentar descobrir o que estava acontecendo. Depois de algumas escavações, me deparei com isso no exato momento 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

Desde que a máquina "0" foi implementada com o MAAS via Juju, eu não acho que ela estaria rodando o MAAS também. Para solucionar o problema, eu criei um túnel SSH na máquina "0" escutando na porta 80 (localhost) para a porta 80 do servidor MAAS, por ex. 80: MAAS-Server-IP: 80 Depois disso, juju status mudou 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 localhost em vez do servidor MAAS? Isso se deve ao fato de eu estar executando o Juju e o MAAS no mesmo servidor?

    
por Timothy Lambert 30.04.2013 / 16:46

1 resposta

3

Quando um ambiente é inicializado, você deve prestar atenção ao nome do host em environments.yaml, como parece que é o que é enviado para máquinas subseqüentes. No meu caso, eu tinha o servidor configurado como http://localhost:80/MAAS , fazendo com que a máquina "0", e qualquer outra máquina, tentasse fazer uma conexão com o localhost e não com o IP / hostname do servidor MAAS. Depois de destruir meu ambiente e fazer o bootstrapping novamente com o servidor http://10.0.0.10:80/MAAS , tudo pareceu implantar corretamente. Isso é inteiramente um descuido da minha parte.

    
por Timothy Lambert 30.04.2013 / 17:32