从命令行指定无头或GUI

时间:2014-05-29 06:18:40

标签: vagrant

根据documentation,在GUI模式下运行Vagrant VM很容易:

config.vm.provider "virtualbox" do |v|
  v.gui = true
end

但是,有没有办法从命令行执行此操作,例如在运行vagrant up时?例如,

vagrant up --gui
vagrant up --headless

不同的用户可能更喜欢启动UI;它似乎不应该在每个人都会使用的Vagrant文​​件中指定!

1 个答案:

答案 0 :(得分:20)

GUI选项是特定于提供者的(并且只有很少的提供者支持它),因此顶级vagrant命令为它添加开关感觉不对。

根据我的经验,GUI最常见的用例是:

  • 运行桌面型机器,在这种情况下,设置在Vagrantfile
  • 中有意义
  • 调试启动等问题,当您只想暂时启用它时

如果您无论如何都要设置打开和关闭GUI的常规设置,您可以使用环境变量。例如,在Vagrantfile中这样的东西:

# Returns true if `GUI` environment variable is set to a non-empty value.
# Defaults to false
def gui_enabled?
  !ENV.fetch('GUI', '').empty?
end

Vagrant.configure('2') do |config|
  config.vm.provider 'virtualbox' do |v|
    v.gui = gui_enabled?
  end
end

然后在* nix系统的命令行上:

GUI=1 vagrant up

在Windows上:

set GUI=1
vagrant up