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

我公司的开发环境基于VirtualBox上运行的虚拟机。 我们想进一步移动一下,使用Vagrant的function在机器的文本文件中描述机器,然后根据这个文本文件“提升”机器。 与傀儡相结合,这将解决我们每个人都有不同的软件版本安装在虚拟机的问题。

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

到目前为止,我已经设法从一个Xubuntu发行版创build一个“基本”框。 但是当我input“vagrant up”时,虽然桌面出现了,我可以正常login,但Vagrant冻结了“等待机器启动,这可能需要几分钟…”。 经过一段时间的stream浪汉崩溃,由于超时。 所以不会创build共享文件夹,也不会执行包预配器-puppet。

如何使用vagrant来创build一个完整的GUI的虚拟机?

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

  1. 获得一个基本的Ubuntu镜像工作。 你应该能够启动它和vagrant ssh
  2. 接下来,启用VirtualBox显示,默认closures。 暂停VM并取消注释Vagrantfile这些行:
     config.vm.provider:virtualbox do | vb |
       vb.gui = true
    结束 
  3. 启动VM并观察新的显示窗口。 现在你只需要安装并启动xfce4 。 使用vagrant ssh和:
     sudo apt-get install xfce4
     sudo startxfce4&
    

就是这样,你应该在xfce4会话中登陆。

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

  1. 不要以root身份启动GUI。 你真的想留在vagrant使用者。 为此,您需要允许任何人启动GUI: sudo vim /etc/X11/Xwrapper.config并将其编辑为allowed_users=anybody
  2. 接下来, 启动GUI 之前安装VirtualBox访客工具。 这将给你一个健康的屏幕分辨率,集成鼠标等
     $ sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
     $ sudo VBoxClient-all 
  3. 只有现在你应该启动GUI作为vagrant用户, $ startxfce4&

更新2:今天尝试了这个和VBoxClient-all脚本并不总是安装。 如果缺less,可以用等同replace:

  sudo VBoxClient --clipboard
 sudo VBoxClient  - 拖放
 sudo VBoxClient  - 显示
 sudo VBoxClient --checkhostversion
 sudo VBoxClient --seamless 

这是空气的Vagrantfileforms的优秀答案

 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 

使用用户名login: vagrant ,密码:通过virtualbox GUI上的login提示消失。

启动xfce

 startx 

我的2美分

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

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

    例如在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 
  • 如果您build立自己的stream浪基座盒,请确保遵循基盒包装说明或考虑封隔器(或veewee)等工具来自动化构build。

我正在使用Ubuntu的桌面图像,它与Windows上的两个显示器与虚拟框提供商很好地工作。

 Vagrant.configure(2) do |config| config.vm.box = "box-cutter/ubuntu1404-desktop" config.ssh.forward_agent = true config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.network "forwarded_port", guest: 3000, host: 3000 config.vm.synced_folder "../../git", "/home/vagrant/git" config.vm.provider "virtualbox" do |vb| vb.gui = true vb.customize ["modifyvm", :id, "--monitorcount", "2"] vb.memory = "2048" end end 

您也可以考虑使用Packer为开发人员创buildVirtualBox图像。

而不是共享开发人员用来构build和运行虚拟机的Vagrant文​​件,而是使用打包模板(json)来创build虚拟机镜像。 开发人员直接在VB中下载或复制图像并在本地运行,而无需自行构build。

许多公共共享的Vagrant基本框是用Packer创build的。

https://askubuntu.com/questions/300799/does-ubuntu-12-04-lts-32-bit-have-graphic-user-interface/300805#300805

“安装完桌面之后,您还需要安装GDM,这可以让您直接启动到graphics环境,您也可以configuration它。”

所以也许添加这个?

 Vagrant::Config.run do |config| config.vm.provision :shell, :inline => "sudo apt-get install gdm" config.vm.provision :shell, :inline => "sudo dpkg-reconfigure gdm" end 

在上面添加billmalarky的评论,在fedora 20上启动xfce之前需要做以下的事情:

  • 安装VirtualBox-guest.rpm(可从rpmfusion回购)
  • 百胜集团标志安装'graphical_environment'
  • yum groupinstall“Xfce”
  • yum安装xorg-x11-drivers

这里是代码:

 config.vm.provision "shell", inline: <<-SHELL #Install Virtual Box guest additions from rpmfusion repos cd /vagrant yum install -y rpmfusion-free-release-20.noarch.rpm yum install -y rpmfusion-nonfree-release-20.noarch.rpm yum update -y yum install -y VirtualBox-guest #Add XFCE desktop to fedora server yum groups mark install 'graphical_environment' yum groupinstall -y "Xfce" yum install -y xorg-x11-drivers SHELL