Puppet 使用Vagrant,为什么傀儡资源调配比定制打包的盒子更好?

Puppet 使用Vagrant,为什么傀儡资源调配比定制打包的盒子更好?,puppet,vagrant,Puppet,Vagrant,我正在创建一个虚拟机来模拟我们的生产web服务器,这样我就可以与新开发人员共享它,让他们尽快跟上进度。我已经阅读了Vagrant文档,但是我不理解使用通用基本框并使用Puppet配置所有内容与使用已安装和配置的所有内容打包自定义框相比的优势。我所能想到的就是 使用木偶与定制包装盒的优势 易于让每个人保持最新-能够将清单置于 版本控制和共享repo,以便其他开发人员可以 只需拉动新的更新并重新运行puppet,即“流浪者条款” 环境记录在清单中 能够使用生产环境中定义的puppet模块 确保相同

我正在创建一个虚拟机来模拟我们的生产web服务器,这样我就可以与新开发人员共享它,让他们尽快跟上进度。我已经阅读了Vagrant文档,但是我不理解使用通用基本框并使用Puppet配置所有内容与使用已安装和配置的所有内容打包自定义框相比的优势。我所能想到的就是

使用木偶与定制包装盒的优势

  • 易于让每个人保持最新-能够将清单置于 版本控制和共享repo,以便其他开发人员可以 只需拉动新的更新并重新运行puppet,即“流浪者条款”
  • 环境记录在清单中
  • 能够使用生产环境中定义的puppet模块 确保相同的环境
使用木偶与定制包装盒的缺点

  • 编写清单所需的时间比简单地安装和安装清单所需的时间要长 配置一个定制的包装盒
  • 第一次构建虚拟机需要更长的时间 而不是简单地下载一个定制的包装盒

我觉得我一定错过了一些重要的细节,你能再想想吗?

优点

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

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

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

缺点


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

上面没有明确提到的一个优点是,您将记录您的设置(正确),并且您的文档将是实际的设置-而不是(一次性的)描述事情本来是/可能是怎样的