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

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

Если я использую этот AMI напрямую, и я задаю скрипт userdata, например:

#!/bin/bash

echo "Hello from userdata!"

.. commands

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

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

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

1 ответ

Решение

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

Он имеет преимущества для определения сборки вашего пользовательского AMI как кода ( Infrastructure as Code). Userdata сможет работать в этом пользовательском AMI.

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

Другие вопросы по тегам