Назад | Перейти на главную страницу

Динамическая загрузка рецептов шеф-повара из URL-адресов

Я развертываю веб-приложение на AWS.

Я собираюсь использовать Chef для создания AMI, которые затем я запустил в производство.

Я хочу, чтобы Chef отслеживал URL-адрес, хранящийся в simpleDB. URL-адрес будет указывать на архив в S3. Могут быть разные URL-адреса, один для архива конфигурации, другой для архива кода. Когда я обновляю URL-адрес в simpleDB, я хочу, чтобы шеф-повар заметил это, вытащил и применил конфигурации / развернул код.

Это возможно? Делалось ли что-нибудь подобное раньше или мне нужно будет накатывать собственный код? Я думаю, Chef может отслеживать URL-адреса, но как лучше всего заставить его загрузить этот URL-адрес из simpleDB?

Нет проблем. База данных не является строго необходимой для этого (поскольку я предлагаю вам сохранить эти настройки как атрибуты узла ... таким образом вы можете изменить настройки узла в любое время, когда захотите, а шеф-повар обеспечит соответствие), однако я предполагаю, что вы используя базу данных для других целей и оставив ее в базовой архитектуре. Вот мой предложенный поток:

  1. хранить [:deploy][:configurl] и [:deploy][:codeurl] как атрибуты на узле
  2. Попросите шеф-повара выполнить два отдельных SQL-запроса, чтобы получить каждый URL-адрес из вашей базы данных.
  3. Сравните результаты URL-адреса из базы данных с атрибутами узла
  4. Остальные элементы завернуты в not_, если результаты совпадают
  5. remote_file URL-адреса, если локальный архив не существует
  6. унтар
  7. делать все необходимое для использования файлов tar