vagrant - 从命令行指定 headless 或 GUI

标签 vagrant

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

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

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

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

最佳答案

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
    

    关于vagrant - 从命令行指定 headless 或 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926945/

    相关文章:

    php - 为什么 laravel 会出现应用程序错误

    macos - Vagrant 在 Mac OS 上自动挂起

    ssh - 如何使用 "vagrant ssh"进行 ssh 代理转发?

    bash - 在 "vagrant ssh"时自动 chdir 到 vagrant 目录

    bash - Unix 脚本无法更改 Ubuntu 上的 postgres hba.conf 配置文件

    shell - 如何设置vagrant用户对$SHELL使用/bin/bash

    debugging - 如何配置 VS Code 来调试 vagrant 容器中的代码?

    windows-installer - 将 Vagrant 静默安装到 Windows 上的首选目录

    redis - capistrano成功启动redis-server,但登录时它没有运行

    virtualbox - vagrant:更好地访问 "reset"我的访客 vagrant 虚拟机网络吗?