我正在创建一个虚拟机来模仿我们的生产 Web 服务器,以便我可以与新开发人员共享它,让他们尽快上手。我已经阅读过 Vagrant 文档,但是我不明白使用通用基础盒并使用 Puppet 配置所有内容与打包已安装和配置所有内容的自定义盒相比有何优势。我能想到的就是;
使用 Puppet 与定制包装盒的优点
- 轻松让每个人都了解最新情况 - 能够将清单放在下面
版本控制并共享存储库,以便其他开发人员可以
只需提取新的更新并重新运行木偶,即“流浪者规定”。
- 环境记录在清单中。
- 能够使用生产环境中定义的 puppet 模块来
确保相同的环境。
使用 Puppet 与定制包装盒的缺点
- 编写清单比简单安装和安装花费更长的时间
配置定制包装盒。
- 第一次构建虚拟机需要更长的时间
puppet 而不是简单地下载一个定制的包装盒。
我觉得我一定遗漏了一些重要的细节,你还能想到更多吗?
优点:
由于依赖关系可能会随着时间的推移而发生变化,因此从头开始构建新的盒子将涉及手动删除软件包,或者扔掉盒子并再次手动重复安装过程。显然,您可以使用 bash 或其他类型的脚本来自动执行安装,但您将调用本机操作系统包管理器,这意味着它只能在您选择的操作系统上运行。换句话说,你被困在了里面;)
据我所知,Puppet(如 Chef)包含一种与操作系统无关的通用方法来安装软件包,这意味着清单可以在不同的操作系统上运行而无需修改。
此外,这些相同的脚本可用于配置生产计算机,这意味着开发计算机和生产计算机实际上是相同的。
缺点:
当您可能不打算切换操作系统或生产环境时,必须学习另一种 DSL。您必须决定这些优势是否值得您花时间进行设置。就我个人而言,我认为拥有一个抽象且可重复的包管理/配置策略将在未来为我节省大量时间,但是YMMV。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)