Mostrando entradas con la etiqueta virtualbox. Mostrar todas las entradas
Mostrando entradas con la etiqueta virtualbox. Mostrar todas las entradas

Vagrant: Instalación y primeros pasos

Esta entrada la tenía pendiente desde que el otro día hablé con +Susana López Barreras sobre el tema. Así que por fin me decidí terminarla y publicarla. Servirá para ella y para más gente, espero.

¿Qué es Vagrant?

Vagrant es una herramienta pensada para facilitar la creación y configuración automática de entornos de desarrollo virtualizados. Aunque en sus orígines únicamente se podía usar con VirtualBox, actualmente ya es capaz de desplegar máquinas en sistemas como VMware, Amazon EC2, etc. La gran ventaja es que trabaja de la mano directamente con herramientas de centralización de configuraciones, tales como Puppet o SaltStack, de las que hablamos aquí en más de una ocasión. Es gracias a esta perfecta combinación donde reside el verdadero poder de Vagrant.

Instalación

Vagrant está disponible en los repositorios de la mayoría de distribuciones, pero yo personalmente recomiendo bajar el paquete desde la web oficial, Vagrantup.com, para disponer así de la última versión. Compensa tener la versión de la web oficial, ya que tiene importantes mejoras. Así que nos dirigimos a la parte de descargas y seleccionamos el sistema operativo que tengamos y lo descargamos. Yo personalmente me bajo la de Debian 64 ;-)
shell> wget https://dl.bintray.com/.../vagrant_1.6.5
Una vez la tenemos, simplemente instalamos el nuevo paquete,
shell> dpkg -i vagrant_1.6.5_x86_64.deb
Y desde este momento ya disponemos de Vagrant instalado en el sistema. Crear una nueva instancia de una máquina virtual a partir de ahora será muy sencillo y trivial.

Uso de Vagrant

Efectivamente, Vagrant, si no se emplea con SaltStack o Puppet, no es más que una forma diferente de crear máquinas virtuales en VirtualBox, por decirlo de forma sencilla. Aun así, es una forma muy cómoda, pues no necesitas realizar ningún tipo de instalación. Esta es la primero ventaja que tiene Vagrant. Si necesitas una máquina con un determinado sistema operativos, ya no es necesario descargar la ISO e instalarla, desde Vagrant es más sencillo.

Crear nueva máquina

shell> vagrant init
 A `Vagrantfile` has been placed in this directory. You are now
 ready to `vagrant up` your first virtual environment! Please read
 the comments in the Vagrantfile as well as documentation on
 `vagrantup.com` for more information on using Vagrant.
A continuación editamos dicho fichero (/tmp/Vagrantfile),
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   config.vm.box = "ubuntu/precise64"
end
Dejándolo tal y como se muestra anteriormente. A continuación, simplemente,
shell> vagrant up
 Bringing machine 'default' up with 'virtualbox' provider...
  ==> default: Importing base box 'ubuntu/precise64'...
  ==> default: Matching MAC address for NAT networking...
  ...
Este comando hará todo lo necesario. Es decir, se descargará la pre-imagen de la máquina precise64 si fuese necesario, creará una nueva instancia de la máquina en VirtualBox (por defecto) y la arrancará. Para acceder a ella,
shell> vagrant ssh

Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-72-virtual)
...

vagrant@vagrant-ubuntu-precise-64:~$
Si necesitas otra máquina, cual sea, simplemente editas el fichero y la creas. Sin complicaciones. Existen multitud de máquinas libres para descarga en vagrantcloud.

Destruir máquina

La ventaja de Vagrant y que veremos en próximas entradas es el poder de la auto-creación, pero por el momento, si tras levantar tu máquina virtual y trabajar con ella varios días, finalizaste el trabajo y ya no quieres que te ocupe espacio, simplemente,
shell> vagrant destroy
 Are you sure you want to destroy the 'default' VM? [y/N] y
  ==> default: Forcing shutdown of VM...
  ==> default: Destroying VM and associated drives...

Más

Como era de esperar, puedes apagarla, volver a levantarla, suspenderla y un largo etcétera de funcionalidades, según lo que aporte el sistema de virtualización que emplees.
Leer más

NET: Registered protocol en VirtualBox

En algunas ocasiones puede que veas el siguiente error tras instalar una máquina virtual en VirtualBox o tras alterar algún tipo de configuración de la misma. Si te pasa esto,
NET: Registered protocol family 2
La solución es ir a la configuración de la máquina virtual y en "Sistema", habilitar la característica avanzada "Habilitar I/O APIC", tal como se muestra en la siguiente imagen.
Una vez guardado el cambio, simplemente hay que volver a lanzar la máquina y ya no debería de haber más errores de arranque.
Leer más

Controlando VirtualBox desde consola

En numerosas ocasiones hablamos en este blog sobre VirtualBox y la facilidad que éste tiene para la gestión de máquinas virtuales, especialmente en entornos domésticos. Personalmente no lo contemplo para algo que no sea desarrollo.
Desde mi punto de vista, uno de los mayores problemas que veo en vBox es la forma de arrancar y gestionar las máquinas; arrancas el interfaz gráfico, seleccionas la máquina y la inicias. Una vez comienza el proceso de arranque, ya se puede cerrar el software de lanzamiento. La ventana ejecuta se ejecuta en otro instancia que crear su propia ventana. No es que me moleste, pero no soy amigo de tener muchas ventanas abiertas, así que tenía que encontrar una forma de arrancar y gestionar las máquinas virtuales sin interfaz gráfico. Al fin y al cabo, a las máquinas Linux siempre me conecto vía ssh y a las máquinas con Windows no me conecto vía escritorio remoto.
Además de esto, poder gestionar las máquinas desde línea de comandos simplificaría el manejo de las mismas, especialmente en remoto, que ya no sería para nada necesario un interfaz gráfico.
Para hacerlo comencé a investigar un poco el comando VBoxManage, que es el encargado de hacer todos los trabajos a bajo nivel. Entonces descubrí la forma sencilla de poder arrancar una máquina, apagarla, saber qué máquinas tengo instaladas, cuales en ejecución, etc.
A continuación os dejo algunos de los comandos que más habitualmente supongo que se emplean en la gestión de máquinas virtuales, aunque para más información, mirar todas las opciones de VBoxManage.
  • Listar máquinas disponibles
    shell> VBoxManage list vms
    
  • Listar máquinas arrancadas
    shell> VBoxManage list runningvms
    
  • Reiniciar una máquina
    shell> VBoxManage controlvm uuid|vmname reset
    
  • Arrancar una máquina
    shel> VBoxManage startvm uuid|vmname --type headless
    
  • Apagar una máquina
    shell> VBoxManage controlvm uuid|vmname resume|poweroff
    
  • Información sobre una máquina
    shell> VBoxManage showvminfo uuid|vmname
    
  • Limitar el ancho de banda empleado por una máquina
    shell> VBoxManage bandwidthctl uuid|vmname add 'limit net' --type network --limit 1M
    
  • Registrar una nueva máquina virtual
    shell> VBoxManage registervm filename
    
  • Borrar una máquina virtual
    shell> VBoxManage unregistervm uuid|vmname --delete
    
Todos los procesos se lanzan sobre una máquina, bien por su nombre o por su uuid. En ambos casos éste debe ser único, por lo que no tendremos problemas de confundirnos de máquina sobre la que trabajar.
Leer más

VirtualBox add extension

VirtualBox es una excelente plataforma de virtualización a nivel doméstico. Tanto para trabajar como para uso en casa y aprender cosas nuevas está genial.
El otro día trabajando en una máquina de pruebas, me saltó un curioso fallo que me impedía arrancar la máquina y no sabía por qué, así que tocó investigar un poco. Lo único que hice fue darle soporte a la máquina que comenzó a fallar para tener soporte de USB 2.0, pues tenía que copiar unas cosas e iba muy lento con el USB 1.1. Tras modificar la configuración, tal como se muestra en la imagen de abajo, la máquina daba un fallo y no arrancaba.
Tras aplicar la configuración, y como resalté en rojo, el sistema ya nos estaba avisando de que algo estaba mal: "Configuración inválida detectada". Si lo ignoramos y decidimos intentar arrancar la máquina virtual, lo que obtenemos es el siguiente fallo.
Lo que nos viene a decir es básicamente lo que hicimos antes. Habilitamos el soporte para USB 2.0 y directamente no es capaz de arrancar. ¿VirtualBox no trae soporte para USB 2.0?


Fallo al abrir una sesión para la máquina virtual XXX.

Implementation of the USB 2.0 controller not found!

Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings (VERR_NOT_FOUND)

Código Resultado: NS_ERROR_FAILURE (0x80004005)
Componente: Console
Interfaz: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}
Puesto que no me lo creí, decidí investigar un poco por mi cuenta y vi que efectivamente y de forma nativa no hay soporte para UBS 2.0, vídeo RDP ni tarjetas a 1000Mb. Estas cosas, puesto que nunca las empleé no me habían fallado, ahora que comenzaba, empezaban los fallos.

Cómo habilito entonces soporte para UBS 2.0

Lógicamente nos interesa tener soporte para todo esto y por suerte VirtualBox tiene una extensión, que no trae de fábrica, que añade dicho soporte. Antes de seguir, necesitamos saber qué versión del software tenemos. En mi caso tengo VirtualBox 4.3.0 r89960. Esto es importante, ya que las extensiones van por versión. Para saber qué versión tienes, puedes ir a "Ayuda/Acerca de VirtualBox...". Una vez sepas la versión, vas a la URL del fabricante y te descargar el pack de extensiones para la versión que tengas. Si tienes la misma versión que yo, de tejo aquí el link.
Una vez descargado el fichero, de extensión .vbox-extpack, debemos proceder a instalarlo en el sistema. Para ello vamos a "Archivo/Preferencias" y ahí, a la parte de "Extensiones", para a continuación añadir la nueva extensión que hemos descargado. Si nos fijamos, nos indica aquellas cosas para las que vamos a dar soporte.
Tener presente que esta extensión no es por usuario, sino del sistema, por lo que os pedirá la contraseña de administrador. Tras la instalación de dicha extensión, ya máquina con soporte USB 2.0 ya podrá arrancar perfectamente y tendremos una velocidad digna en dicho dispositivo.
Leer más

kUbuntu VirtualBox Guest additions fail

Por motivos que todavía desconozco muy bien, terminé instalando un sistema kUbuntu en una máquina virtual. Si bien es cierto que fui usuario de KDE, hace años que lo dejé de lado, ya que cada vez cargaba más y más la máquina, para sacar el mismo provecho que XFCE.
El caso es que tras instalar la máquina, decidí instalar las Guest additions de VirtualBox para que vaya más fluida y pueda intercambiar datos de forma rápida y sencilla con el host anfitrión. Tras hacerlo (y por lo que parece todo terminar correctamente), reinicio la máquina tal como indican las instrucciones y al volver al sistema, no es lo que esperaba, los servicios se han instalado, pero no arrancan. El módulo del kernel no está cargado y además no se puede cargar. Si intento forzar el arranque obtengo lo siguiente:
shell> /etc/init.d/vboxadd start
Starting the VirtualBox Guest Additions ...fail!
(modprobe vboxguest failed)

shell> modprobe vboxguest
FATAL: Module vboxguest not found.
Esto no es desde luego lo esperado. El sistema tiene instalado el software, pero no funciona. Lo vuelvo a instalar y pasa exactamente lo mismo. Está claro que el fallo viene de otro lugar.
La ejecución de VBoxLinuxAdditions.run no está, lo que se dice precisamente depurada, y aunque falten un buen puñado de paquetes instalados, no avisa y lo que es peor, termina aparentemente bien. La solución,
shell> apt-get install dkms
shell> apt-get install build-essential
Tras la instalación de estos paquetes, volvemos a lanzar el instalador de las Guest additions.
shell> ./VBoxLinuxAdditions.run
Y ahora ya podéis reiniciar el sistema y debería de funcionar correctamente :-)

La entrada kUbuntu VirtualBox Guest additions fail la puede leer en Puppet Linux.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios