Управление конфигурацией приложения в aws использование марионетки

У меня есть веб-приложение с бэкендом .NET (RESTful Services) и угловой js frontend. Приложение размещается на веб-сервере IIS. Я собираюсь развернуть приложение на AWS, таким образом что

  • У меня будет группа автомасштабирования с Windows Base Image
  • Я должен буду создать / конфигурационные файлы обновления, используемые приложением. Например, для бэкенда, у меня есть сеть. Файл конфигурации, для которого нужен доступ к экземпляру RDS (IP, имя пользователя и пароль и т.д.)
  • У меня будут различные среды (для простоты, давайте примем QA, Подготовку и Производство с их собственными экземплярами RDS),

Как я могу использовать марионетку (ведущее устройство/ведомое устройство) для управления этой конфигурацией приложения для нескольких сред и узлов так, чтобы она работала, когда новый экземпляр создается в группе автомасштабирования?

0
задан 18 August 2015 в 21:42
1 ответ

Я проделал аналогичный процесс с помощью Chef. Вот как я прошел через это (я опишу это с Chef, но это должно быть очень похоже на Puppet):

Допустим, у меня есть одна группа автомасштабирования для каждой среды. Один хороший способ - использовать сценарий PowerShell через пользовательские данные в конфигурации запуска моих групп автомасштабирования для начальной загрузки любого порожденного экземпляра. Таким образом, любой созданный экземпляр автоматически регистрируется на моем сервере Chef.

Chef отвечал за установку и настройку всего стека (apache, mysql и т. Д.).

Я использую одну конфигурацию запуска для каждой среды (не используйте только одну, поскольку вы не сможете изменить среду qa / staging без изменения продукта). В пользовательских данных каждой конфигурации запуска вы можете либо настроить переменные, соответствующие среде при начальной загрузке узла в Chef, либо назначить роль Chef узлу, содержащую все необходимые переменные для этой среды (например, роли шеф-повара будут «QA "," постановка "," прод "...). Затем экземпляр запускает рецепты Chef и настраивается с использованием правильных переменных

дополнительные сведения:

  • в Chef нам нужен pem-ключ валидатора для подписи первого вызова от экземпляра к серверу Chef. Я сохранил этот ключ в S3, и порожденные экземпляры загрузили его для регистрации на моем сервере Chef (я могу подробно описать, как получить к нему безопасный доступ, если вам нужно).

надеюсь, что это поможет

0
ответ дан 5 December 2019 в 12:16

Теги

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