Deshabilite el servicio de metadatos ec2 desde cloud-init

Deshabilite el servicio de metadatos ec2 desde cloud-init

Tengo una imagen de AWS EC2 que convertí a VirtualBox y la ejecuto localmente. Funciona muy bien, excepto que no puedo entender cómo deshabilitar las llamadas a los servicios de metadatos de AWS en el arranque:

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

¿En qué parte de Cloud-init puedo desactivarlos? Estas llamadas eventualmente expiran, pero hacen que el inicio de la imagen de VirtualBox demore más de 2 minutos.

Respuesta1

Si realmente desea utilizar una imagen de nube con virtualbox, le sugeriría la .vmdkque produce Canonical en lugar de la ami ec2. Ya está configurado para usar elfuente de datos sin nubey mi versión de virtualbox ya funciona con .vmdk de forma nativa (o se convierte de forma transparente, no estoy muy seguro).

Para obtener instrucciones detalladas,esta respuestatiene mas.

Respuesta2

Para una caja virtual única, la respuesta de @ching está bien. Sin embargo, si está creando una plantilla y necesita cloud-init para configurar las cosas, entonces la forma "correcta" de hacerlo es crear un archivo de anulación en formato /etc/cloud/cloud.cfg.d/. Los archivos en /etc/cloud/cloud.cfg.d/anularán los valores en /etc/cloud.cfg.

Ejemplo:

Valor en/etc/cloud/cloud.cfg

datasource_list: [ Ec2, None ]

Archivo nuevo/etc/cloud/cloud.cfg.d/99_overrides.cfg

datasource_list: [ None ]

Puede agregar otros proveedores aquí en lugar de Ec2: VMware, ConfigDrive, etc., lo que puede ser muy útil para aprovisionar cosas como lo haría con los metadatos de EC2.

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

Respuesta3

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

información relacionada