Запустить пользовательские данные на пользовательском EC2 AMI, созданном из centos 7

Я использую ami-3ecc8f46, доступный на https://aws.amazon.com/marketplace/pp/B00O7WM7QW.

Если я использую этот AMI напрямую и указываю сценарий пользовательских данных, например:

#!/bin/bash

echo "Hello from userdata!"

.. commands

тогда все работает нормально и команды запускаются. Однако я хочу создать собственный AMI, который представляет собой AMI centos7 + несколько пакетов.

Например, я хочу создать экземпляр ami-3ecc8f46, установить python 3.7 и преобразовать его образ как пользовательский AMI. Когда я это делаю, пользовательские данные больше не запускаются, и curl http://169.254.169.254/latest/user-data возвращает ошибку 404.

К сожалению, похоже, что некоторая комбинация ec2 / userdata / cloudinit пометила этот экземпляр как уже запущенный один раз, и поэтому больше нет необходимости предоставлять или запускать пользовательские данные. Какой самый простой способ взять пользовательский AMI CentOS, установить несколько пакетов поверх и повторно создать образ в качестве пользовательского AMI, который по-прежнему будет запускать мои сценарии пользовательских данных?


person Lev Dubinets    schedule 07.01.2019    source источник


Ответы (1)


Для создания пользовательских AMI можно использовать Packer.

Преимущество заключается в том, чтобы определить сборку вашего пользовательского AMI в виде кода (Инфраструктура как код). Userdata сможет работать в этом настраиваемом AMI.

Также обратите внимание на существующая проблема в SO для других решений.

person Quentin Revel    schedule 07.01.2019
comment
Спасибо, я видел существующую проблему, о которой вы упомянули, но почему-то пропустил совет по удалению /var/lib/cloud. кажется, это помогает. - person Lev Dubinets; 08.01.2019