Позвольте мне попытаться сделать это действительно простым для подражания. Я развертываю Vagrant для своих разработчиков и буду использовать Puppet для предоставления компьютеров. Допустим, у меня есть два набора машин, один из которых имеет сервер apache / mysql5 и сервер apache / mongodb. Я использую Puppet для управления различными компонентами, но я не использую централизованный сервер puppetmaster.
С учетом вышесказанного я работаю с двумя каталогами в хранилище Mercurial. В случае, если мне нужно что-то изменить с помощью mysql, я могу заставить разработчиков извлекать последние изменения соответственно. У меня проблема в том, как мне обрабатывать структуру хранилища, не дублируя структуру каталогов.
manifests
- это отличается для каждой машины, mysql
машина будет иметь директивы для установки mysql
, тогда как mongodb
машина будет иметь свои собственные инструкции для mongodb
modules
- это общее для каждой машины, но только необходимые папки внутри этой папки хранятся на каждой машине (то есть modules / mongodb и modules / mysql).
Если я скину все это в один большой репозиторий, я не хочу, чтобы мой сервер "apache + mysql" загружал модули для модулей "apache + mongodb". Можно ли, скажем, поместить каталог manifests
в конкретное хранилище и загрузить только соответствующие папки из папки modules
?