配置版本是 Vagrant 1.1+(引入了大量新功能和配置选项) 能够与 Vagrant 1.0.x Vagrantfiles 保持向后兼容的机制。
现在运行 vagrant init
时,Vagrantfile 将大致采用以下格式:
Vagrant.configure("2") do |config|
# ...
end
上面示例中第一行的“2”代表配置对象 config 的版本,该配置将用于该块的配置(do 和 end 之间的部分)。这个对象在不同版本之间可能差异很大。
目前只支持两个版本:“1”和“2”。版本 1 代表 Vagrant 1.0.x 的配置。“2”代表 1.1+ 至 2.0.x 的配置。
加载 Vagrantfile 时,Vagrant 会为每个版本使用正确的配置对象,并正确合并它们,就跟其他配置一样。
普通用户只需要明白一点:在单个配置部分中,只能使用单个版本。不能在版本 1 配置部分中使用新的 config.vm.provider
配置。同样,config.vm.forward_port
在第 2 版配置部分中不起作用(它已重命名)。
如果你愿意,可以在同一个 Vagrantfile 中混合和匹配多个配置版本。如果你找到一些有用的配置片段或想要使用的内容时,非常有用。例:
Vagrant.configure("1") do |config|
# v1 configs...
end
Vagrant.configure("2") do |config|
# v2 configs...
end
什么是
Vagrant::Config.run
?你可以在 Vagrantfiles 中看到这个。实际上,这就是在 Vagrant 1.0.x 如何配置的。在 Vagrant 1.1+ 中,这与Vagrant.configure("1")
是同义的。