virtual machine - hashicorp - Usar vagabundo para ejecutar máquinas virtuales con entorno de escritorio
vagrant package (8)
Al igual que la solución xfce4 de @Air. Una vez tuve éxito, pero hoy fallé con ubuntu16.04. Tengo este error:
xrdb can''t open display 1
Pero afortunadamente, encontré que esto funciona:
startx
El entorno de desarrollo de mi empresa se basa en máquinas virtuales que se ejecutan en VirtualBox. Nos gustaría avanzar un paso más y usar las capacidades de Vagrant para tener la descripción de la máquina en un archivo de texto y luego poder "elevar" esa máquina en función de ese archivo de texto. Combinado con títeres, esto nos resolvería el problema de que cada uno tiene diferentes versiones de software instaladas en la máquina virtual.
Sin embargo, Vagrant parece muy centrado para desarrollar en el host, dejando la máquina en segundo plano. Necesitaríamos tener nuestro entorno de desarrollo dentro de la máquina, por lo que necesitaríamos una GUI completa, por lo que al escribir "vagabundo" debería aparecer una máquina con un entorno de escritorio completo (XFCE, KDE ...).
Hasta ahora, he logrado crear una caja "base" a partir de una distribución de Xubuntu. Pero cuando escribo "vagabundo", aunque aparece el escritorio, y puedo iniciar sesión correctamente, Vagrant se congela con el mensaje "Esperando a que la máquina se inicie. Esto puede demorar unos minutos ...". Después de un tiempo, Vagrant se bloquea debido al tiempo de espera. Por lo tanto, no se crean carpetas compartidas ni se ejecuta el aprovisionador de paquetes -puppet-.
¿Cómo crear una máquina virtual con una GUI completa usando vagabundo?
Aquí está la excelente respuesta de Air en forma de un 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
Para iniciar el vm
vagrant up
Inicie sesión con nombre de usuario: vagrant
, contraseña: vagrant
través de la solicitud de inicio de sesión en la interfaz gráfica de usuario de la caja virtual.
Comience xfce
startx
Estoy usando la imagen de escritorio de ubuntu, funciona muy bien con dos monitores en windows con el proveedor de cuadro virtual.
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
Mis 2 centavos
Asegúrese de ejecutar el último vagabundo (1.3.3 ahora) + VirtualBox (4.2.18) para evitar errores.
Puede usar el script de shell o el comando en línea para instalar un entorno de escritorio o un administrador de ventanas liviano
Por ejemplo, instale LXDE en la parte superior de Ubuntu 12.04 Base de caja precisa de vagrantbox.es
Vagrant.configure("2") do |config|
# ... other configuration
config.vm.provision "shell" do |s|
s.inline = "apt-get install lubuntu-desktop -y"
end
end
- Si construyes tus propias cajas base vagabundas, asegúrate de seguir las instrucciones de empaquetado de la caja base o considera herramientas como packer (o veewee) para automatizar la compilación.
Para agregar al comentario de Billmalarky anterior, en fedora 20, fue necesario antes de iniciar xfce:
- Instalar VirtualBox-guest.rpm (disponible desde repos de rpmfusion)
- grupos de yum marcan instalar ''environment_global''
- yum groupinstall "Xfce"
- yum install xorg-x11-drivers
Aquí está el código:
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
También puede considerar el uso de Packer para crear imágenes de VirtualBox para el uso de los desarrolladores.
En lugar de compartir el Vagrantfile que los desarrolladores usan para construir y ejecutar su máquina virtual, tendrían una plantilla de empaquetador (json) que se usa para crear una imagen de máquina virtual. Los desarrolladores descargan o copian la imagen y la ejecutan localmente, directamente en VB, sin tener que construirla ellos mismos.
Muchas de las cajas base Vagrant compartidas públicamente se crean con Packer.
Después de instalar el escritorio, también querrá instalar GDM, que le permitirá iniciar directamente en un entorno gráfico. También querrás configurarlo.
Entonces tal vez agregue esto?
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
Acabo de hacer esto trabajando básicamente con tres pasos. El consejo de askubuntu.com
no funcionó para mí, así que prueba esta versión simplificada:
- Obtener una imagen básica de Ubuntu funcionando. Deberías poder arrancarlo y
vagrant ssh
. - A continuación, habilite la pantalla de VirtualBox, que está desactivada de manera predeterminada. Detenga la VM y
Vagrantfile
comentario de estas líneas enVagrantfile
:config.vm.provider :virtualbox do |vb| vb.gui = true end
- Arranque la VM y observe la nueva ventana de visualización. Ahora solo necesita instalar e iniciar
xfce4
. Usevagrant ssh
y:sudo apt-get install xfce4 sudo startxfce4&
Eso es todo, deberías aterrizar en una sesión xfce4
.
Actualización: para una mejor experiencia, recomiendo estas mejoras:
- No inicie la GUI como root. Realmente quieres permanecer como el usuario
vagrant
. Para hacer esto, debe permitir que cualquiera inicie la GUI:sudo vim /etc/X11/Xwrapper.config
y edítela aallowed_users=anybody
. - A continuación, instale las herramientas de invitado de VirtualBox antes de iniciar la GUI. Esto le dará una resolución de pantalla saludable, mouse integrado, etc.
$ sudo apt-get install -y xfce4 virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 $ sudo VBoxClient-all
- Solo ahora debería iniciar la GUI como el usuario
vagrant
, con$ startxfce4&
.
Actualización 2: Intenté esto hoy y el VBoxClient-all
no siempre está instalado. Si falta, puede reemplazar con el equivalente:
sudo VBoxClient --clipboard sudo VBoxClient --draganddrop sudo VBoxClient --display sudo VBoxClient --checkhostversion sudo VBoxClient --seamless