Я ношу шляпу DevOps для своей компании. Вся наша инфраструктура настраивается вручную в AWS, и я хотел бы начать использовать Chef для настройки.
Первый шаг: упростите загрузку среды и обратитесь к серверу шеф-повара! Вот мои мысли о том, как к этому подойти.
Итак, мой вопрос: как лучше всего запустить скрипт? только раз при следующем запуске?
Вы смотрели вики-запись Opscode об использовании Chef с EC2?
http://wiki.opscode.com/display/chef/EC2+Bootstrap+Fast+Start+Guide
По сути, вы должны запустить экземпляр EC2, в который вы можете использовать ssh, а затем запустить для него команду ножевой загрузки. Команда knife сделает все, что у вас есть на шаге 2. Вы можете настроить шаблон начальной загрузки ножа, чтобы указать рецепты / роли Chef, которые вы хотите применить к узлу. Вам не нужно делать шаг 3.
Прочтите вики OpsCode. На мой взгляд, в нем слишком много информации, чтобы кто-то легко потерял ее из виду.
Ваш подход должен быть таким:
Используйте Knife, чтобы запустить свежий Ubuntu / CentOS AMI с требуемым списком запуска. Ваш список выполнения - это в основном роли, которые содержат кулинарные книги. Кулинарные книги содержат рецепты того, что вы действительно хотите автоматизировать.
В идеале вы никогда не должны создавать пользовательский AMI из этого образа, управляемого шеф-поваром. В этом весь смысл использования этих инструментов управления конфигурацией.