使用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议对我来说并不适合,所以试试这个简化的版本:
- 获得一个基本的Ubuntu镜像工作。 你应该能够启动它和
vagrant ssh
。 - 接下来,启用VirtualBox显示,默认closures。 暂停VM并取消注释
Vagrantfile
这些行:config.vm.provider:virtualbox do | vb | vb.gui = true 结束
- 启动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
- 只有现在你应该启动GUI作为
vagrant
用户,$ startxfce4&
。
更新2:今天尝试了这个和VBoxClient-all
脚本并不总是安装。 如果缺less,可以用等同replace:
sudo VBoxClient --clipboard sudo VBoxClient - 拖放 sudo VBoxClient - 显示 sudo VBoxClient --checkhostversion sudo VBoxClient --seamless
这是空气的Vagrantfile
forms的优秀答案
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的。
“安装完桌面之后,您还需要安装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