Vagrant配置管理和版本控制

3
我使用Anisible为我的Vagrant box创建了一个基础的LAMP stack。一切正常,现在我想让团队成员使用相同的box。
Vagrant建议每个项目使用一个Vagrant文件,这不是问题,但是像资源、playbooks和主机等配置信息,怎么处理呢?我相信它们不应该提交到该项目的Git仓库中,那我该怎么办呢?
我应该将它们提交到单独的仓库中,并将其作为子模块进行克隆吗?如果是这样,我应该同时包含Vagrant文件吗?还是我没有理解清楚?
将子模块的想法进一步推广,是否有意义创建专门用于该项目的分支并将其作为子模块进行克隆,或者我可能理解错了?

我认为你只需要提交它们。除非我漏掉了什么,但是这个想法是拥有一个Vagrantfile,然后在项目中获取所有其他资源所需的内容。然后当有人拉取它时,你就可以得到所有的东西并启动vagrant。 - nerdlyist
是的,你在这里想太多了。看看其他流行的存储库,其中包括一个 Vagrantfile 和任何必要的配置程序。 - ydaetskcoR
1个回答

5
提交所有必要的内容来启动你的项目中的虚拟机。你可以轻松地从一个项目复制和粘贴文件到另一个项目以供重用(或者创建一个通用仓库),但是基本想法是一旦它们被提交到一个项目中,那么所有开发人员只需要拉取该项目并且运行 vagrant up 命令。如果在开发过程中有任何更改,他们可以再次拉取并运行 vagrant provision 命令来更新。这就是整个思路。
查看 Github 上的 AnisibleChefPuppet 仓库,每个项目的 Vagrant 相关文件都在其中。

谢谢大家的快速回复。最简单的选项是正确的选择 - 我很满意 :) - Captain flapjack
所以,如果我正在使用本地 Vagrant box 开发 Web 应用程序,即使生产服务器不使用 Vagrant,我也应该在 git 中包含 Vagrantfile 和配置脚本吗? - Buttle Butkus
@buttlebutkus 是的,因为它可以使本地开发在任何机器上工作。你的生产部署应该只部署生产所需的内容。 - nerdlyist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接