library hashicorp cajas boxes app virtual-machine desktop virtualbox vagrant

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.



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:

  1. Obtener una imagen básica de Ubuntu funcionando. Deberías poder arrancarlo y vagrant ssh .
  2. A continuación, habilite la pantalla de VirtualBox, que está desactivada de manera predeterminada. Detenga la VM y Vagrantfile comentario de estas líneas en Vagrantfile :

    config.vm.provider :virtualbox do |vb| vb.gui = true end

  3. Arranque la VM y observe la nueva ventana de visualización. Ahora solo necesita instalar e iniciar xfce4 . Use vagrant 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:

  1. 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 a allowed_users=anybody .
  2. 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

  3. 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