Отключить службу метаданных ec2 из cloud-init

Отключить службу метаданных ec2 из cloud-init

У меня есть образ AWS EC2, который я конвертировал в VirtualBox и запустил локально. Он отлично работает, за исключением того, что я не могу понять, как отключить вызовы служб метаданных AWS при загрузке:

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

Где в cloud-init я могу отключить их? Эти вызовы в конечном итоге выходят из строя, но приводят к тому, что загрузка образа VirtualBox занимает более 2 минут.

решение1

Если вы действительно хотите использовать облачный образ с virtualbox, я бы предложил тот, .vmdkкоторый Canonical производит вместо ec2 ami. Он уже настроен на использованиеисточник данных без облакаи моя версия virtualbox уже изначально работает с .vmdk (или конвертирует прозрачно, я не совсем уверен).

Подробные инструкции см.этот ответимеет больше.

решение2

Для одноразового virtualbox ответ @ching хорош. Однако, если вы создаете шаблон и вам нужен cloud-init для настройки, то «правильный» способ сделать это — создать файл переопределения в /etc/cloud/cloud.cfg.d/. Файлы в /etc/cloud/cloud.cfg.d/переопределят значения в /etc/cloud.cfg.

Пример:

Значение в/etc/cloud/cloud.cfg

datasource_list: [ Ec2, None ]

Новый файл/etc/cloud/cloud.cfg.d/99_overrides.cfg

datasource_list: [ None ]

Вместо EC2 вы можете добавить сюда других поставщиков — VMware, ConfigDrive и т. д., что может быть очень удобно для предоставления таких же возможностей, как при использовании метаданных EC2.

Видеть:https://cloudinit.readthedocs.io/en/latest/topics/datasources.html

решение3

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

Связанный контент