Vagrant 保持生产流动虚拟机在不同时间的一致性?

Vagrant 保持生产流动虚拟机在不同时间的一致性?,vagrant,Vagrant,在将第一台服务器迁移到一个流浪的VM之前,我试图完全理解流浪的概念 顺便说一句,基础图像永远不会被Vagrant修改,这样它们就可以安全地在项目中重复使用 但是,如何确保运行的VM保持一致,因为包更新程序的结果会因配置时间的不同而有所不同 为了便于讨论,我将使用一个基于Debian的框。 我的资源调配将从sudo-apt-get-update&&sudo-apt-get-upgrade开始,以确保获得需要安装的软件的最新版本 因此,在日期X,我提供服务器,该服务器更新包并安装必要的包 在日期Y,

在将第一台服务器迁移到一个流浪的VM之前,我试图完全理解流浪的概念

顺便说一句,基础图像永远不会被Vagrant修改,这样它们就可以安全地在项目中重复使用

但是,如何确保运行的VM保持一致,因为包更新程序的结果会因配置时间的不同而有所不同

为了便于讨论,我将使用一个基于Debian的框。 我的资源调配将从
sudo-apt-get-update&&sudo-apt-get-upgrade
开始,以确保获得需要安装的软件的最新版本

因此,在日期X,我提供服务器,该服务器更新包并安装必要的包

在日期Y,为测试目的提供了一个新的VM。包更新显然会让位于不同的VM


如何保持两个虚拟机的一致性

您应该制作一个基本框,例如

而且你不应该一开始就运行apt-get-update或yum-update等。。因为正如你自己所说,你永远不会有一个稳定的环境


仅在构建自己的基本长方体时执行此操作。如果您想更新基本包,只需创建一个新的基本框并使用Vagrant加载该基本框即可。您需要不断运行puppet或chef,以确保运行的VM的状态相同

在您的情况下,如果您使用的是Debian stable,那么您不太可能拥有不同的软件包(DEP),只要资源调配一直在做相同的事情。(Arch Linux会不时更改包名和dep,这就是为什么很少有人在生产lol中使用它的原因)

对于基本框,我建议使用Packer而不是Veewee(除非您计划构建Windows基本框)。检查Opscode bento项目中的封隔器模板