使用vagrant在桌面环境下运行虚拟机

我公司的开发环境基于在VirtualBox上运行的虚拟机。 我们想更进一步,并使用Vagrant的功能将文本文件中的机器描述,然后能够基于该文本文件“提升”该机器。 与puppet相结合,这将解决我们每个人在VM中安装不同软件版本的问题。

但是,Vagrant似乎非常专注于在主机上开发,让机器在后台运行。 我们需要在机器内部有我们的开发环境,所以我们需要一个完整的GUI,因此当输入“vagrant up”时,应该出现一台具有完整桌面环境(XFCE,KDE ...)的机器。

到目前为止,我已经设法从Xubuntu发行版创建了一个“基本”框。 但是当我输入“vagrant up”时,尽管桌面出现,并且我能够正确登录,但Vagrant冻结了消息“等待机器启动,这可能需要几分钟......”。 经过一段时间Vagrant崩溃,由于超时。 因此不会创建共享文件夹,也不会执行程序包预配程序-puppet。

如何使用vagrant来创建具有完整GUI的虚拟机?


我刚刚通过三个步骤完成了这项工作。 askubuntu.com的建议对我来说并不适合,所以试试这个简化版本:

  • 获得一个基本的Ubuntu映像工作。 你应该可以启动它和vagrant ssh
  • 接下来,启用VirtualBox显示,默认关闭。 暂停虚拟机并取消注释Vagrantfile这些行:
    config.vm.provider :virtualbox do |vb|
      vb.gui = true
    end
  • 启动VM并观察新的显示窗口。 现在你只需要安装并启动xfce4 。 使用vagrant ssh和:
    sudo apt-get install xfce4
    sudo startxfce4&
    
  • 就是这样,你应该在xfce4会话中登陆。

    更新:为了更好的体验,我推荐这些改进:

  • 不要以root身份启动GUI。 你真的想留下vagrant使用者。 为此,您需要允许任何人启动GUI: sudo vim /etc/X11/Xwrapper.config并将其编辑为allowed_users=anybody
  • 接下来, 启动GUI 之前安装VirtualBox访客工具。 这会给你一个健康的屏幕分辨率,集成的鼠标等。
    $ sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
    $ sudo VBoxClient-all
  • 现在只需要以$ startxfce4&启动GUI作为vagrant用户。
  • 更新2:今天试过,并且VBoxClient-all脚本并不总是被安装。 如果缺少,可以用相应的代码替换:

    sudo VBoxClient --clipboard
    sudo VBoxClient --draganddrop
    sudo VBoxClient --display
    sudo VBoxClient --checkhostversion
    sudo VBoxClient --seamless

    这是Air以Vagrantfile形式出色的答案

    Vagrant.configure(2) do |config|
      # Ubuntu 15.10
      config.vm.box = "ubuntu/wily64"
    
      config.vm.provider "virtualbox" do |vb|
        # Display the VirtualBox GUI when booting the machine
        vb.gui = true
      end
    
      # Install xfce and virtualbox additions
      config.vm.provision "shell", inline: "sudo apt-get update"
      config.vm.provision "shell", inline: "sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11"
      # Permit anyone to start the GUI
      config.vm.provision "shell", inline: "sudo sed -i 's/allowed_users=.*$/allowed_users=anybody/' /etc/X11/Xwrapper.config"
    end
    

    启动虚拟机

    vagrant up
    

    请输入帐号: vagrant :,密码vagrant通过在VirtualBox的图形用户界面的登录提示。

    启动xfce

    startx
    

    我的2美分

  • 确保你正在运行最新的流浪者(1.3.3现在)+ VirtualBox(4.2.18)以避免错误。

  • 您可以使用shell脚本或内联命令来安装桌面环境或轻量级窗口管理器

    例如,在vagrantbox.es的Ubuntu 12.04 Precise base box上安装LXDE

  • Vagrant.configure("2") do |config|
      # ... other configuration
    
      config.vm.provision "shell" do |s|
        s.inline = "apt-get install lubuntu-desktop -y"
      end
    end
    
  • 如果您建立自己的流浪基座盒,请确保遵循基盒包装说明或考虑封隔器(或veewee)等工具来使构建自动化。
  • 链接地址: http://www.djcxy.com/p/5103.html

    上一篇: Using vagrant to run virtual machines with desktop environment

    下一篇: Get first key in a (possibly) associative array?