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

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

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

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

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

1 ответ

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

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