Vagrantfile
配置版本
配置版本是一种机制,通过该机制,Vagrant 1.1+可以 与Vagrant 1.0.x Vagrantfiles保持向后兼容,同时引入了许多新功能和配置选项
现在运行vagrant init,其格式如下:
Vagrant.configure("2") do |config|
# ...
end
其中的2代表配置的版本的号
可以同时使用版本1和版本2的特性,最终它们将合并在一起使用
Vagrant.configure("1") do |config|
# v1 configs...
end
Vagrant.configure("2") do |config|
# v2 configs...
end
最小版本
这个可以限制太新或者太旧的版本,但是此版本限制必须放在vagrantfile文件最前面, 并通过vagrant.require_version 指定
Vagrant.require_version ">= 1.3.5"
上述限制将让vagrantfile文件只在 大于等于vagrant 1.3.5版本时加载
也可以指定多版本限制
Vagrant.require_version ">= 1.3.5", "< 1.4.0"
循环vm定义
(1..3).each do |i|
config.vm.define "node-#{i}" do |node|
node.vm.provision "shell",
inline: "echo hello from node #{i}"
end
end
以上的each结构时使用副本进行迭代,所以不会出错,但是如果使用以下结构,将会使所有node的text相同
# THIS DOES NOT WORK!
for i in 1..3 do
config.vm.define "node-#{i}" do |node|
node.vm.provision "shell",
inline: "echo hello from node #{i}"
end
end
重写ssh会话中的host locale变量
通常,host locale环境变量传递给客户机,但是可能客户机不支持,所以可以使用以下解决方法
ENV["LC_ALL"] = "en_US.UTF-8"
Vagrant.configure("2") do |config|
# ...
end
该变量只在Vagrantfile中可见
配置空间 config.vm
可用配置
-
config.vm.allow_fstab_modification (boolean)
-
config.vm.allow_hosts_modification (boolean)
-
config.vm.base_mac (string)
-
config.vm.base_address (string)
-
config.vm.boot_timeout (integer)