12

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

使用 Puppet 与定制包装盒的优势

  • 易于让每个人都保持最新状态 - 能够将清单置于版本控制之下并共享存储库,以便其他开发人员可以简单地提取新更新并重新运行 puppet,即“流浪供应”。
  • 环境记录在清单中。
  • 能够使用在生产环境中定义的 puppet 模块来确保相同的环境。

使用 Puppet vs 定制包装盒的缺点

  • 与简单地安装和配置自定义打包盒相比,编写清单需要更长的时间。
  • 第一次使用 puppet 构建虚拟机比简单地下载一个自定义打包的盒子要花更长的时间。

我觉得我一定遗漏了一些重要的细节,你还能想出更多吗?

4

2 回答 2

12

优点

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

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

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

缺点

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

于 2012-10-15T11:31:34.370 回答
6

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

于 2013-11-06T12:13:09.940 回答