使用vagrant在桌面环境下运行虚拟机
我公司的开发环境基于在VirtualBox上运行的虚拟机。 我们想更进一步,并使用Vagrant的功能将文本文件中的机器描述,然后能够基于该文本文件“提升”该机器。 与puppet相结合,这将解决我们每个人在VM中安装不同软件版本的问题。
但是,Vagrant似乎非常专注于在主机上开发,让机器在后台运行。 我们需要在机器内部有我们的开发环境,所以我们需要一个完整的GUI,因此当输入“vagrant up”时,应该出现一台具有完整桌面环境(XFCE,KDE ...)的机器。
到目前为止,我已经设法从Xubuntu发行版创建了一个“基本”框。 但是当我输入“vagrant up”时,尽管桌面出现,并且我能够正确登录,但Vagrant冻结了消息“等待机器启动,这可能需要几分钟......”。 经过一段时间Vagrant崩溃,由于超时。 因此不会创建共享文件夹,也不会执行程序包预配程序-puppet。
如何使用vagrant来创建具有完整GUI的虚拟机?
我刚刚通过三个步骤完成了这项工作。 askubuntu.com
的建议对我来说并不适合,所以试试这个简化版本:
vagrant ssh
。 Vagrantfile
这些行: config.vm.provider :virtualbox do |vb| vb.gui = true end
xfce4
。 使用vagrant ssh
和: sudo apt-get install xfce4 sudo startxfce4&
就是这样,你应该在xfce4
会话中登陆。
更新:为了更好的体验,我推荐这些改进:
vagrant
使用者。 为此,您需要允许任何人启动GUI: sudo vim /etc/X11/Xwrapper.config
并将其编辑为allowed_users=anybody
。 $ 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
上一篇: Using vagrant to run virtual machines with desktop environment