我有以下设置:
许多不同的项目是单独的git存储库,但大多数项目都具有相同的服务器配置每个项目又依赖于许多其他项目,我们使用composer依赖管理器将它们组合在一起(此处为PHP语言)。我想使用Vagrant,并在每个存储库中包含一个Vagrant文件,以便我的团队成员可以克隆存储库,运行vagrant up并准备就绪。
我的问题现在针对配置。我需要安装几个工具和软件包,例如apache,git,mysql和几个php软件包,然后下载一些文件(例如最近开发的db dump),在/ var / www中进行所有设置并运行composer install命令。
因此,一种选择是使用经理使用厨师或木偶之类的食谱。另一种方法是编写一个bash文件并使用shell配置。
我对Chef / Puppet没有太多经验,所以自然地,使用shell选项似乎更容易,但是从长远来看,我想了解一下这不是一个好的/可行的选择。
为什么对我来说,与木偶/厨师一起使用似乎是一种不好的方法:
我知道我将不得不使用几种不同的配方,并且几乎总是将相同的配方用于不同的存储库,因此我必须将所有这些都包括在所有存储库中。考虑有20个仓库,需要10个食谱,这意味着我将需要添加200个食谱作为git-submodule或类似的东西(同样,每个团队成员都需要克隆存储库,然后克隆10个食谱存储库,然后为每个容器运行流浪汉项目)。相比之下,我只需要在shell脚本中创建一个小型存储库并将其克隆20次即可。
我可能会缺少一些东西,所以请咨询我是否应该选择Chef / Puppet,以及即使我的存储库都具有非常相似的服务器设置,为什么也要这样做。