使用Vagrant,为什么木偶供应比定制包装盒更好?

时间:2012-10-13 12:31:41

标签: puppet vagrant

我正在创建一个虚拟机来模仿我们的生产Web服务器,以便我可以与新开发人员共享它,以便尽快加快速度。我已经浏览过Vagrant文​​档但是我不明白使用通用基本框和使用Puppet配置所有内容的优势,而不是打包已经安装和配置的所有内容的自定义框。我能想到的只是;

使用Puppet与自定义打包框的优势

  • 轻松让每个人都保持最新状态 - 能够将清单置于其中 版本控制和共享repo,以便其他开发人员可以 只需提取新的更新并重新运行木偶即“流浪汉条款”。
  • 清单中记录了环境。
  • 能够使用生产环境中定义的木偶模块 确保环境相同。

使用Puppet与自定义打包框的缺点

  • 编写清单需要更长时间而不是简单地安装和 配置自定义打包的框。
  • 第一次构建虚拟机需要更长时间才能使用 傀儡而不是简单地下载定制的包装盒。

我觉得我必须错过一些重要细节,你能想到更多吗?

2 个答案:

答案 0 :(得分:12)

<强>优点

由于依赖关系可能会随着时间的推移而发生变化,因此从头开始构建一个新框将涉及手动删除软件包,或者将框丢弃并重新手动重复安装过程。您显然可以使用bash或其他类型的脚本自动执行安装,但是您将调用本机OS包管理器,这意味着它只能在您选择的操作系统上运行。换句话说,你装箱了;)

据我所知,Puppet(与Chef一样)包含一种通用的,与操作系统无关的安装包的方式,这意味着清单可以在不经修改的情况下在不同的操作系统上运行。

此外,这些相同的脚本可用于配置生产机器,这意味着开发机器和生产实际上是相同的。

<强>缺点

当您可能没有计划切换操作系统或生产环境时,必须学习另一个DSL。您必须确定优势是否值得花时间进行设置。就个人而言,我认为拥有一个抽象且可重复的包管理/配置策略将为我节省大量时间,但是YMMV。

答案 1 :(得分:6)

上面没有明确提到的一个很大的优点是你要记录你的设置(正确),你的文档将是实际的设置 - 而不是(一次性)描述事情是如何/可能是打算成为。