我正在创建一个虚拟机,以模仿我们的生产 Web 服务器,以便我可以与新开发人员共享它,让他们尽快适应。我已经阅读了 Vagrant 文档,但是我不明白使用通用基础镜像并使用 Puppet 配置所有内容的优势,与打包安装和配置好一切的自定义镜像相比。我能想到的只有以下几点:
使用 Puppet 和自定义打包镜像的优劣势:
- 易于保持每个人的更新 - 能够将清单放在版本控制下,并共享 repo,以使其他开发人员能够简单地拉取新的更新并重新运行 puppet,即 “vagrant provision”。
- 在清单中记录环境信息。
- 能够使用在生产环境中定义的 Puppet 模块确保相同的环境。
- 编写清单所需的时间比仅安装和配置自定义打包镜像多。
- 使用 Puppet 构建虚拟机的第一次需要更长的时间,而直接下载自定义打包镜像则更快。