在将第一台服务器迁移到Vagrant VM之前,我正在尝试完全掌握Vagrant概念。
AFAIK,Vagrant永远不会修改基本图像,以便可以安全地在项目中重复使用它们。
但是,您如何确保保持正在运行的VM一致,因为包更新程序的结果会因您配置它而有所不同?
为了论证,我将使用基于Debian的盒子。
我的配置将从sudo apt-get update && sudo apt-get upgrade
开始,以确保我获得了我需要安装的最新版软件。
所以在第X天,我配置了SERVER,它更新了包,并安装了必要的包。
在日期Y,配置新VM以用于测试目的。软件包更新显然会产生不同的VM。
如何保持2个VM一致?
答案 0 :(得分:2)
您应该创建一个基本框,例如VeeWee
你应该永远不要开始运行apt-get update或yum update等。因为正如你自己所说,你永远不会有一致的环境。
仅在构建自己的基本框时执行此操作。如果要更新基本软件包,只需创建一个新的基本框并使用Vagrant加载该基本框
答案 1 :(得分:1)
您需要不断运行木偶或厨师,以确保正在运行的虚拟机的状态相同。
在您的情况下,如果您使用的是Debian stable,只要配置保持相同的功能,您就不可能拥有不同的包(deps)。 (Arch Linux不时更改软件包名称和代码,这就是很少有人在生产中使用它的原因大声笑。)
对于基本框,我建议使用Packer而不是Veewee(除非您计划构建Windows基本框)。检查封装模板的Opscode便当项目。