Во время выполнения моих рецептов развертывания OpsWorks есть период времени, когда приложение должно быть недоступно для публики. Есть ли рекомендуемый способ добиться этого?
Это сайт Magento, и я создал два рецепта. Один для создания maintenance.flag
и еще один, чтобы удалить его снова. Это указывает Magento обслуживать удерживающую страницу с кодом ответа HTTP 503.
С этим две проблемы:
Есть ли способ запустить мой рецепт режима обслуживания до того, как код будет извлечен из git или сразу после этого? Или какой-то способ использовать undeploy
рецепт блюда? Или что-нибудь получше?
У Opsworks есть возможность вручную выполнить рецепт через развертывание: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-manual.html
Я бы рекомендовал вручную запустить здесь ваш рецепт, чтобы перевести сайт в режим обслуживания и затем выполнение вашего развертывания, которое должно отключить режим обслуживания в качестве последнего шага.
Хотя это ручная операция, если у вас есть среда непрерывной интеграции / развертывания, стоит отметить, что вы можете сделать то же самое с помощью AWS CLI: http://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html
Общая идея заключается в том, что вы создадите сценарий развертывания по завершении сборки, запустите свой рецепт, который переводит его в режим обслуживания, а затем запустите реальное развертывание.
Надеюсь это поможет!
РЕДАКТИРОВАТЬ
Вы также можете использовать средства развертывания Chef для выполнения настройки и удаления в режиме обслуживания. Видеть: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-extend-hooks.html
Выберите соответствующие крючки, которые вы хотите привязать, и создайте deploy
папка в корне вашего приложения.