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.