如果你在更改Vagrantfile的时候发现更改没有起作用,可能是由于以下几个方面:
一、 语法错误
更改Vagrantfile时,如果发生错误可能会使代码中断,这很可能是你的更改没有起作用的原因之一。例如下面的Vagrantfile中使用了一个无效的语法。
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network :private_network, ip: "192.168.33.10" config.vm.provision :shell, path: "script.sh" #valid syntax args: "Hello World" #invalid syntax, missing comma end
如果Vagrantfile包含语法错误,可以尝试使用vagrant validate命令来检查语法。例如:
$ vagrant validate
二、缓存问题
Vagrantfile是在启动虚拟机之前加载的。如果您对Vagrantfile进行更改,但是更改没有生效,可能是因为Vagrant缓存了旧版本的Vagrantfile。
要解决此问题,可以使用vagrant reload --provision命令重新加载Vagrantfile。
$ vagrant reload --provision
三、Vagrant插件问题
如果您安装了Vagrant插件,但是更改没有生效,则可能需要卸载插件,然后重新安装它。您可以使用vagrant plugin uninstall和vagrant plugin install命令来解决此问题。
$ vagrant plugin uninstall [插件名称] $ vagrant plugin install [插件名称]
四、VMware问题
如果正在使用VMware,而更改不起作用,可能是因为Vagrant无法将更改传递给VMware。您可以尝试使用vagrant reload --provision --provider=vmware_fusion或者vagrant reload --provision --provider=vmware_workstation命令来解决此问题。
$ vagrant reload --provision --provider=vmware_fusion $ vagrant reload --provision --provider=vmware_workstation
总结
更改Vagrantfile的时候,需要注意语法问题、缓存问题、插件问题以及VMware问题。只要注意这些问题,就可以解决更改Vagrantfile但是没有起作用的问题。