Opsworks и Chef — настройте каждое развернутое приложение с использованием тех же рецептов

Opsworks и Chef — настройте каждое развернутое приложение с использованием тех же рецептов

У меня есть набор рецептов, которые развертывают приложения Python на экземплярах AWS, они работают хорошо. Я хочу развернуть два разных приложения с небольшими различиями, например, одно требует установки кода асинхронного рабочего процесса, а другое — нет. Как мне это сделать?

Мои варианты, как я их вижу:

  1. Создайте два приложения в OpsWorks и задайте переменные окружения для каждого из них, которые рецепты могут использовать для определения того, следует ли и как запускать определенные задачи.EnvVars
  2. Создайте файл(ы) в репозитории, подробно описывающие требования к приложению.
  3. Добавляйте пользовательский JSON-файл для каждого развертывания.customJSON

Ни один из этих вариантов не кажется мне идеальным, я что-то упустил из виду?

решение1

Варианты 1 и 3 «фактически» (я говорю это вольно) одинаковы. По сути, вы передаете различия через JSON. Лично я использовал и успешно создавал два разных приложения в OpsWorks, но я также был очень заинтересован в возможности младшего ресурса изменять некоторые элементы, но не иметь доступа к паролям или другим конфиденциальным атрибутам. Прямой ответ: вариант 2 заставляет меня больше всего нервничать. Варианты 1/3 лучше, но зависят от ваших потребностей.

Связанный контент