Запустите 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 для других решений.