A implantação Openstack do Landscape falha em Configurar zonas de disponibilidade

8

Usando a opção "OpenStack Beta" do Landscape atual para implantar o OpenStack na minha configuração do MAAS. Chego a 98% de conclusão, com 1 falha em "Configurar zonas de disponibilidade". Minhas configurações utilizavam o KVM, o Open vSwitch e atualmente utilizo o Ceph para armazenamento de objetos e blocos. Quando olho para o /var/log/landscape/job-handler-1.log na máquina paisagística, há mais de 100 erros sobre:

2015-03-05 21:18:38 INFO root RetryingCall for '_get_nova_info' falhou, tentando 103 mais vezes: 2015-03-05 21:18:38 INFO root Traceback:: Faltam 4 unidades de computação nova
/ usr /lib/python2.7/threading.py:783:__bootstrap
/usr/lib/python2.7/threading.py:810:__bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- < exceção capturada aqui> ---
/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py:191:_worker
/usr/lib/python2.7/dist-packages/twisted/python/context. py: 118: callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py: 76: _wrap
/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py:751:_get_nova_info


NOTA : O número da linha em jobs.py está desativado, pois adicionamos algumas instruções de impressão para depuração. É a afirmação na função _get_nova_info () perto da linha 741 (se a memória servir), e sim, estou usando a versão mais recente do landscape a partir de hoje do ppa de paisagem para ser confiável.

Então eu modifiquei /opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py 's _get_nova_info () função para imprimir o comprimento dos nova_compute_hostnames e eu tenho de zero . Então, procurei isso em /opt/canonical/landscape/canonical/landscape/model/openstack/region.py ' get_nova_compute_hostnames () e descobri que self.juju_environment.get_computer_ids (). Count () também era zero . Então, adicionei uma chamada para self.juju_environment.has_computers () e fiquei falso . Então eu corri self.juju_environment.get_juju_home () e obtive/ var / lib / landscape / juju-homes / 20 . (Sim, esta é a minha 20a tentativa na minha 2ª reconstrução da caixa de paisagem, estou nisso há algum tempo). Então, eu corri o status juju utilizando a casa juju mencionada acima e tudo parecia bem. Todas as 5 máquinas e serviços foram iniciados, sem estados pendentes ou de erro. (incluindo os quatro nós de computação nova) Alguma idéia? Sou um pouco novo em paisagem, MAAS, JUJU e python, portanto minha depuração é um pouco lenta.


ATUALIZAÇÃO 1:

De acordo com a solicitação, eu tenho os 2 logs (embora minha casa esteja agora no 23) status juju e broker.log . Acho que agora sei qual é o meu problema de acordo com o trecho de broker.log abaixo. (Obrigado dpb por me indicar lá) Minha máquina MAAS está fornecendo o endereço DHCP ao meu LXC de paisagem, mas meu LXC de paisagem não está no DNS controlado pelo MAAS, pois não é fornecido pelo MAAS. Portanto, as máquinas provisionadas não podem se conectar ao servidor paisagem por nome.

Portanto, isso me leva a uma pergunta relacionada: existe uma boa maneira de o MAAS atualizar automaticamente o DNS com máquinas que não são provisionadas (ou sob o controle do MAAS)? Caso contrário, terei que fornecer um IP estático fora do meu intervalo DHCP e definir manualmente o DNS.

2015-03-06 17: 09: 50.665 INFO [MainThread] Broker iniciado com config /etc/landscape/client.conf
2015-03-06 17: 09: 52.382 INFO [MainThread] Iniciando uma troca de mensagens urgente com https: // landscape / sistema de mensagens .
2015-03-06 17: 09: 52,389 ERRO [PoolThread-twisted.internet.reactor-1] Erro ao entrar em contato com o servidor em https: // landscape / message-system .
Traceback (última chamada mais recente):
arquivo "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", linha 71, em troca
message_api)
Arquivo "/usr/lib/python2.7/ dist-packages / landscape / broker / transport.py ", linha 45, em _curl
headers = headers, cainfo = self._pubkey, curl = curl))
O arquivo "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", linha 109, em busca
eleva PyCurlError (e.args [0], e.args 1 )
PyCurlError: Erro 6: poderia não resolver host: landscape
06-03-2015 17: 09: 52,390 INFO [MainThread] Falha na troca de mensagens.
06-03-2015 17: 09: 52,391 INFO [MainThread] Troca de mensagens concluída em 0,01s.


ATUALIZAÇÃO 2:

Minha configuração é um pouco limitada, pois recebi apenas 6 máquinas (5 nós e 1 controlador) para mostrar os recursos do OpenStack / Landscape; portanto, não posso usar uma máquina dedicada para paisagem. Eu estava usando o início rápido do servidor paisagem em um LXC no meu controlador MAAS, para que eu possa explodi-lo rapidamente e começar de novo.

então, afastei a configuração de paisagem e configurei o LXC para um IP estático, depois modifiquei o DNS (controlado pelo MAAS) para ter a entrada de DNS estático para o meu servidor de paisagem. Em seguida, instalei o Landscape Dedicated Server no LXC usando o método landscape-server-quickstart mencionado acima.

Após essa reinstalação (principalmente para limpar toda a minha bagunça de depuração), finalmente consegui instalar o OpenStack por meio de paisagem. Obrigado.

Master5597
fonte

Respostas:

4

A mensagem "Missing N nova-computute units" refere-se a agentes de clientes paisagísticos registrados de volta ao cenário. Verifique /var/log/landscape/broker.logas unidades ausentes.

ATUALIZAR:

Como você identificou corretamente, as coisas funcionam melhor se o LDS (Landscape Dedicated Server) estiver instalado no mesmo MAAS em que seu openstack permanecerá, principalmente por causa do roteamento de rede e DNS. No entanto, existem inúmeras variações de uma topologia válida com rotas entre redes, etc.

Algumas sugestões sobre o que tentar, leia todas elas. No final, você precisará determinar sua topologia de implantação:

  • Para um teste, implante o LDS no mesmo MAAS onde estará o seu open -ack - apenas para verificar se as coisas estão funcionando lá. Use a ferramenta openstack-install ou o pacote landscape-dense-maas com o juju-quickstart diretamente para facilitar isso.

  • Seus clientes precisam ter acesso ao LDS, como você declarou. Se eles puderem rotear por IP para o local onde o LDS está implantado, você pode desmontar a instalação do openstack, alterar a configuração do nome do servidor apache e tentar novamente. juju set apache2 servername=IP_ADDRESS. Depois de fazer isso, siga juju debug-log, verifique se tudo está OK e verifique se você pode navegar até a GUI do LDS nesse https: // IP_ADDRESS / URL.

dpb
fonte