Запустите userdata для пользовательского EC2 AMI, созданного из centos 7 - PullRequest
0 голосов
/ 07 января 2019

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

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

#!/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 Ответ

0 голосов
/ 07 января 2019

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

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

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

...