Instâncias de nuvem no OpenStack não podem importar chave SSH pública

1

alguém sabe como consertar o problema de instâncias de VM do Ubuntu Cloud no OpenStack não sendo capaz de importar chaves públicas do servidor de meta-dados do Nova-api com a seguinte mensagem:

2012-07-18 11:05:45,409 - util.py[WARNING]: 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [113/120s]: url error [[Errno 111] Connection refused]
2012-07-18 11:05:52,419 - DataSourceEc2.py[CRITICAL]: giving up on md after 120 seconds

Encontrei numerosas menções sobre o problema (por exemplo, aqui ou aqui ) e tentei ativar / desativar esta regra do iptables (usando iptables-save e iptables-apply), mas não funciona. A regra engraçada parece ser:

$ iptables -t nat -L -v | grep -n3 169.254.169.254
48-
49-Chain nova-network-PREROUTING (1 references)
50- pkts bytes target     prot opt in     out     source               destination         
51:   32  1920 DNAT       tcp  --  any    any     anywhere             169.254.169.254      tcp dpt:http to:128.131.172.155:8775
52-    0     0 DNAT       udp  --  any    any     anywhere             sneezy.infosys.tuwien.ac.at  udp dpt:1000 to:10.0.0.2:1194
53-
54-Chain nova-network-float-snat (1 references)

Existe alguma maneira boa de depurar manualmente isso, a propósito?

    
por metakermit 18.07.2012 / 16:26

1 resposta

1

Corrigindo o problema em uma implantação do all-in-one

Com a ajuda do pessoal bacana no #openstack do canal de IRC (zynzel, livemoon) nós resolvemos isso simplesmente reiniciando a nova-api:

sudo restart nova-api

Você pode verificar se o servidor de metadados está realmente ativo:

lsof -i:8775

do seu nó controlador ou

nmap -sS -sV -O -P0 -p8773-8776 <controller_ip>

com o endereço IP do nó do controlador e verificando se a porta 8775 / tcp está aberta e ouvida.

Pode ser que este seja um problema com o Dodai-deploy, pois a nova-api precisa ser instalada depois que o nova-compute for instalado para que o servidor de meta-dados seja inicializado corretamente.

Corrigindo o problema em um multinode doployment

Se você executar uma implantação multihost e desejar usar instâncias de nuvem do Ubuntu que obtêm chaves públicas de um servidor de metadados, você precisará disso na nova.conf do seu controlador:

multihost=True
enabled_apis=metadata,ec2,osapi_compute,osapi_volume

e isso na nova.conf do seu nó de computação:

multi_host=True
enabled_apis=metadata

Sem isso, você obterá erros na saída do console da sua instância (nova console-log test-instance) sobre não conseguir acessar o servidor de metadados e não conseguirá ssh neles.

Outra solução é dizer à sua instância quem você é no Launchpad através do formulário Painel de Dados do Usuário (ou arquivo no terminal) para que ele possa extrair suas chaves públicas de lá. A sintaxe é (não explicada em nenhum outro lugar, exceto em o código fonte ):

#cloud-config
ssh_import_id: [your-launchpad-username]
    
por metakermit 18.07.2012 / 16:26