我有一个很简单的Vagrantfile
. 基本上,它是删除了很多东西的默认文件和一个超级简单的内联外壳配置器:
Vagrant.configure("2") do |config|
config.vm.define "test" do |test|
test.vm.box = "precise64"
test.vm.box_url = "http://files.vagrantup.com/precise64.box"
test.vm.network :forwarded_port, guest: 3000, host: 3000
test.vm.network :private_network, ip: "192.168.33.100"
test.vm.provider :virtualbox do |vb|
vb.customize [ "modifyvm", :id, "--cpus", 2 ]
vb.customize [ "modifyvm", :id, "--memory", 1024 ]
end
test.vm.provision :shell, :inline => "echo \"Hello world!\""
end
end
当我第一次运行vagrant up
时,机器被创建,被引导并且 shell 配置器按预期运行:控制台上的最后一行显示Hello world!
.
现在,如果我再次运行vagrant halt
,vagrant up
机器会启动,但不会运行配置程序。至少没有消息被打印到终端。
在我看来,这与Vagrant 文档相反,该文档指出:
Provisioner 在三种情况下运行:
vagrant up
、vagrant reload
和vagrant provision
。
为什么脚本没有运行?