Cloud init не поставляется с базовым экземпляром, который я загрузил с Amazon (Fedora 16 x86_64), поэтому я установил его с помощью
sudo yum install cloud-init
Теперь, когда я запускаю этот экземпляр через
ec2-run-instance -f my_bash_script
Копирует my_bash_script
к /var/lib/cloud/instances/user-data.txt
Однако, похоже, ни одна из команд в скрипте не выполняется (в основном инициализация chef)
Я читал в Интернете, что CentOS использует скрипты пользовательских данных, инициализируемые из cloud-init-user-script
при первой загрузке. Я предполагал, что то же самое будет и с Fedora, но этого сценария нет в моей системе.
Я побежал
grep 'user-data.txt' /var/log/cloud-init.log
и он не дал результатов.
Как мне правильно настроить это в Fedora, чтобы я мог выполнять сценарии пользовательских данных при создании экземпляра?
Проверьте, создан ли ваш скрипт, указанный в пользовательских данных, как исполняемый скрипт под /var/lib/cloud/instances/scripts/
если он был создан, то часть инициализации завершилась успешно.
После этого cloud-init-cfg all final
команда должна быть выполнена, и это та, которая вызывает cloud_final_modules
часть параметров в /etc/cloud/cloud.cfg
файл. Следовательно, создайте новую службу, которая может выполнять эту команду, и службу следует назвать так, чтобы она запускалась после cloud-init
служба.
Я понял, что проблема заключалась в том, что cloud-init был отправлен в F16 в последнюю минуту. В результате cloud-init из коробки работает только с настройкой cloud-config. Чтобы Fedora могла работать со сценариями ввода пользовательских данных, я решил использовать AMI Fedora 18, в котором эта функция включена по умолчанию.