Из python я использую нож для запуска сервера.В сервере chef, как определить, когда узел полностью загружен
например.
knife ec2 server create -r "role[nginx_server]" --region ap-southeast-1 -Z ap-southeast-1a -I ami-ae1a5dfc --flavor t1.micro -G nginx -x ubuntu -S sg_development -i /home/ubuntu/.ec2/sg_development.pem -N webserver1
Затем я использовал апи шеф-сервера, чтобы проверить, когда бутстраповская завершена, так что я могу затем использовать Boto и другие инструменты для настройки вновь созданного сервера. Псевдо-код будет выглядеть следующим образом:
cmd = """knife ec2 server create -r "role[nginx_server]...."""
os.system(cmd)
boot = False
while boot==False:
chefTrigger = getStatusFromChefApi()
if chefTrigger==True:
boot=True
continue with code for further proccessing
Мой вопрос ... Что такое триггер в шеф-сервер, который будет указывать, когда узел полностью обрабатывается поваром? Заметьте, я использовал -N, чтобы называть сервер и запрашивать его свойства, но что я ищу? Есть ли дурак? Статус?
Благодаря
Ответ jtimberman ниже соответствует вашему вопросу. Я хотел бы задать более широкий вопрос о том, почему вы используете boto и другие инструменты вне Chef для настройки этого экземпляра. Возможно, мне что-то не хватает, но вы, кажется, не полностью используете силу шеф-повара здесь. –
После загрузки я изменяю имена тегов, выполняю тестирование и т. Д., Прежде чем узлы будут перемещены в балансировщик нагрузки. Я уверен, что смогу сделать это у шеф-повара, но я предпочитаю контролировать сценарии, чтобы сделать это. Это решение для отказоустойчивости. Это самая большая причина в том, что если я использую шеф-повар для загрузки неудачного наивного ec2-naode, мне нужно знать, что он правильно загружен. Для загрузки узла требуется около 15 минут. У меня есть тайм-аут в 20. Если дольше, отмените попытку и повторите попытку. Я заметил, что по случайным причинам с шеф-поваром, иногда бутстрапы просто не работают в первый раз. Я называю это шеф-поваром! – Tampa