Динамическая загрузка рецептов от шеф-поваров
Я развертываю веб-приложение на AWS.
Я собираюсь использовать шеф-повара для создания AMI, которые я затем использую.
Я хочу, чтобы Chef следил за URL-адресом, хранящимся в simpleDB. URL будет указывать на тарбол в S3. Там будут разные URL-адреса, один для тарбола конфигурации, другой для тарбола кода. Когда я обновляю URL в simpleDB, я хочу, чтобы chef обнаружил это, вытащил и применил конфигурацию / развертывание кода.
Это возможно? Было ли что-то подобное сделано раньше, или мне нужно будет развернуть свой собственный код? Я думаю, что Chef может отслеживать URL-адреса, но как лучше всего загрузить его с simpleDB?
1 ответ
Нет проблем. Для этого база данных не является строго необходимой (так как я предлагаю вам сохранить эти настройки в качестве атрибутов узла... таким образом, вы можете изменить настройки узла в любое время, когда вы захотите, и chef обеспечит соответствие), однако, я предполагаю, что вы использовать БД для других целей и оставить его в базовой архитектуре. Вот мой предложенный поток:
- хранить
[:deploy][:configurl]
а также[:deploy][:codeurl]
в качестве атрибутов на узле - Пусть шеф выполнит два отдельных запроса SQL, чтобы получить каждый URL из вашей базы данных
- Сравните результаты URL из базы данных с атрибутами узла
- Остальные элементы обернуты в not_if, если результаты совпадают
- remote_file URL, если локальный архив не существует
- распаковываем
- делать все необходимое для использования файлов tar'd