Desative o serviço de metadados ec2 do cloud-init

Desative o serviço de metadados ec2 do cloud-init

Eu tenho uma imagem AWS EC2 que converti para VirtualBox e estou executando localmente. Funciona muito bem, exceto que não consigo descobrir como desabilitar chamadas para os serviços de metadados da AWS na inicialização:

2015-09-25 19:29:29,932 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [50/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78650efd0>, 'Connection to 169.254.169.254 timed out. (connect timeout=50.0)')]
2015-09-25 19:30:20,987 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [101/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78652cb90>, 'Connection to 169.254.169.254 timed out. (connect timeout=50.0)')]
2015-09-25 19:30:39,011 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [119/120s]: request error [(<urllib3.connectionpool.HTTPConnectionPool object at 0x7fb78650ee10>, 'Connection to 169.254.169.254 timed out. (connect timeout=17.0)')]
2015-09-25 19:30:40,015 - DataSourceEc2.py[CRITICAL]: Giving up on md from ['http://169.254.169.254/2009-04-04/meta-data/instance-id'] after 120 seconds
2015-09-25 19:31:43,509 - util.py[WARNING]: Failed to fetch password from virtual router 192.168.128.1

Onde no cloud-init posso desativá-los? Essas chamadas eventualmente expiram, mas fazem com que a inicialização da imagem do VirtualBox demore mais de 2 minutos.

Responder1

Se você realmente deseja usar uma imagem de nuvem com o virtualbox, sugiro o .vmdkque a Canonical produz em vez do ec2 ami. Já está configurado para usar ofonte de dados sem nuveme minha versão do virtualbox já funciona com um .vmdk nativamente (ou converte de forma transparente, não tenho certeza).

Para obter instruções detalhadas,esta respostatem mais.

Responder2

Para uma caixa virtual única, a resposta de @ching é adequada. No entanto, se você estiver criando um modelo e precisar do cloud-init para configurar as coisas para você, a maneira "correta" de fazer isso é criar um arquivo de substituição no formato /etc/cloud/cloud.cfg.d/. Os arquivos em /etc/cloud/cloud.cfg.d/substituirão os valores em /etc/cloud.cfg.

Exemplo:

Valor em/etc/cloud/cloud.cfg

datasource_list: [ Ec2, None ]

Novo arquivo/etc/cloud/cloud.cfg.d/99_overrides.cfg

datasource_list: [ None ]

Você pode adicionar outros provedores aqui em vez de Ec2 - VMware, ConfigDrive, etc., o que pode ser muito útil para provisionar coisas como faria com os metadados do EC2.

Ver:https://cloudinit.readthedocs.io/en/latest/topics/datasources.html

Responder3

systemctl disable cloud-config.service
systemctl disable cloud-final.service 
systemctl disable cloud-init.service 
systemctl disable cloud-init-local.service 

informação relacionada