Мы используем Chef для настройки наших серверов, но я ищу способ консолидировать наши серверные зависимости в один файл конфигурации, который находится в системе управления версиями.
Мы используем capistrano для развертывания, настраиваемый скрипт сборки для непрерывной интеграции, и теперь мы хотим, чтобы опрос Nagios проверял наличие всех зависимостей (установлен rvm, правильная версия ruby, установленные драгоценные камни и т. Д.)
Это означает, что мы будем дублировать конфигурацию зависимостей в трех местах, и я хотел бы реорганизовать это. Я хочу иметь возможность использовать один и тот же код как из моего сценария развертывания, так и из моего сценария сборки для обработки установки пакетов и настройки среды. Мы думали об использовании наших сценариев capistrano в сценарии сборки, но это кажется слишком запутанным. Я также ищу код, который может проверить среду и убедиться, что она соответствует требованиям приложения.
Я представляю, что конфигурация будет чем-то вроде .environment.yml в корневом каталоге приложения. Сценарии могут быть чем-то вроде './script/environment setup' и './script/environment check'.
Я публикую это как вопрос, потому что не хочу изобретать велосипед. Я хотел бы спросить, существует ли уже конвенция или есть ли у кого-нибудь лучшие предложения.
для того, что вы упоминаете, поддерживайте конфигурацию в моем репо, я использую марионетку http://puppetlabs.com/ идеально, потому что марионетка настроена не так, как capistrano, где вы говорите, как в марионетке, вы говорите что, а марионетка выполняет свою работу.
Вы можете (и, вероятно, должны) использовать include
инструкции рецептов в ваших приложениях Ruby.
Если вы говорите об обязательных гемах, вы можете включить в свое приложение гем-файл.
Одна из проблем Chef (и, вероятно, Puppet тоже) заключается в том, что существует множество «правильных» способов делать что-то, и трудно понять, какой из них «наиболее подходит» для вашей ситуации.