当我进行流浪汉配置时,我可以忽略Vagrantfile中有关流浪汉重新加载的一些配置代码吗?

时间:2014-12-01 04:15:03

标签: vagrant vagrantfile

在我的Vagrantfile中,我有两个shell规定:一个用于为我的项目安装系统依赖项,另一个用于启动nginx服务器。

所以我想要的是当我vagrant reload --provision时,我可以忽略安装系统依赖项的规定,而只是启动nginx服务器吗?

示例代码:

VAGRANTFILE_API_VERSION = '2'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

    ...

    # Ignore this line on VM reload
    config.vm.provision 'shell', path: 'provision/install.sh'

    # Execute this one only on VM reload
    config.vm.provision 'shell', path: 'provision/start_nginx.sh'

    ...

end

1 个答案:

答案 0 :(得分:3)

一个简单的解决方案,但有点黑客方法

您可以在运行vagrant reload命令时传递环境变量,如此

RELOAD=true vagrant reload --provision

然后在VagrantFile

VAGRANTFILE_API_VERSION = '2'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

    ...

    # Ignore this line on VM reload
    if (ENV['RELOAD'] != true)
        config.vm.provision 'shell', path: 'provision/install.sh'
    end

    # Execute this one only on VM reload
    config.vm.provision 'shell', path: 'provision/start_nginx.sh'

    ...

end