Вопрос по amazon-ec2 – Как запустить экземпляры EC2 и загрузить / запустить скрипт запуска на каждом из них?

53

Я хочу автоматизировать запуск набора экземпляров Linux EC2.

По сути, я хочу написать скрипт / программу, которая бы:

Instantiate N occurrences of a given AMI of mine. For each started instance, it would upload a customized script and let the script run into the instance.

Используя VMWare, я бы обычно делал это, используяvmrun или Vix SDK.

Какие варианты есть в Amazon AWS / EC2?

Ваш Ответ

2   ответа
82

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

AMIS Amazon Linux и официальные AMI Ubuntu имеютоблако-INIT пакет установлен. У этого есть несколько способов инициировать действия при запуске, но тот, который наиболее точно соответствует вашему запросу (и мой любимый, потому что я его придумал) - это концепцияскрипт пользовательских данных.

Вы можете просто передать любой скрипт (начиная с двух символов #!) В качестве пользовательских данных при запуске экземпляров EC2. Он будет запущен с правами root при первой загрузке экземпляра.

Для конкретного примера того, как это работает, я использую эту точную технику в моей недавней статье:Загрузка известного ключа хоста ssh в скрипт пользовательских данных EC2

Вы также хотели запустить более одного экземпляра EC2 с одним и тем же сценарием. Команда ec2-run-instances и соответствующие API и веб-консоль позволяют указать любое количество экземпляров для запуска с одними и теми же пользовательскими данными. Например:

ec2-run-instances            \
  --instance-count 10        \
  --user-data-file $MYSCRIPT \
  --key $USER                \
  $SOMEAMI

Если вы в настоящее время используете AMI, на котором не установлен cloud-init, вы можете выполнить одно из следующих действий:

Switch to an AMI that has cloud-init installed, or

Build a custom version of your AMI that has cloud-init installed, or

Write a more complicated wrapper script that makes a record of all of the instance ids after they are kicked off, waits for all of the instances to move to the running state, waits for the sshd to accept connections, uploads your startup script to each instance, and runs the startup script on each instance.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Serge Wautier
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

учебное пособие для запуска сценария в «cloud-init»; запускается каждый раз при запуске AWS EC2.

to set configuration file (AWS CentOS6) and

run the scripts when you startup the EC2

Для настройки файла конфигурации в Linux вы можете обратитьсянастроить cloud-init в AWS Linux.

Я лично пользуюсьAWS VPC/EBS который был настроен на основе Linux AMI, я ничего не трогал в файле конфигурации/etc/cloud/cloud.cfg но мойзагрузочный скрипт в облаке-init хорошо работает

Похожие вопросы