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