让我试着让这个非常简单。我正在为我的开发人员部署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
文件夹中只下载相应的文件夹?
答案 0 :(得分:3)
您可以使用Mercurial的Subrepository功能。
如果我理解你想要什么,我会做以下事情: