我正在创建一个虚拟机来模仿我们的生产Web服务器,以便我可以与新开发人员共享它,以便尽快加快速度。我已经浏览过Vagrant文档但是我不明白使用通用基本框和使用Puppet配置所有内容的优势,而不是打包已经安装和配置的所有内容的自定义框。我能想到的只是;
使用Puppet与自定义打包框的优势
使用Puppet与自定义打包框的缺点
我觉得我必须错过一些重要细节,你能想到更多吗?
答案 0 :(得分:12)
<强>优点强>:
由于依赖关系可能会随着时间的推移而发生变化,因此从头开始构建一个新框将涉及手动删除软件包,或者将框丢弃并重新手动重复安装过程。您显然可以使用bash或其他类型的脚本自动执行安装,但是您将调用本机OS包管理器,这意味着它只能在您选择的操作系统上运行。换句话说,你装箱了;)
据我所知,Puppet(与Chef一样)包含一种通用的,与操作系统无关的安装包的方式,这意味着清单可以在不经修改的情况下在不同的操作系统上运行。
此外,这些相同的脚本可用于配置生产机器,这意味着开发机器和生产实际上是相同的。
<强>缺点强>:
当您可能没有计划切换操作系统或生产环境时,必须学习另一个DSL。您必须确定优势是否值得花时间进行设置。就个人而言,我认为拥有一个抽象且可重复的包管理/配置策略将为我节省大量时间,但是YMMV。
答案 1 :(得分:6)
上面没有明确提到的一个很大的优点是你要记录你的设置(正确),你的文档将是实际的设置 - 而不是(一次性)描述事情是如何/可能是打算成为。