Los primeros 10 minutos con Vagrant

Instalación

Instalar Virtualbox como prerequisito si aún no se cuenta con este software.

$ sudo aptitude install dkms virtualbox

Es recomendable instalar su correspondiente Extension Pack.

Para el caso de Ubuntu/Debian descargar el archivo .deb correspondiente a la arquitectura desada del sitio web de descargas e instalarlo localmente.

$ sudo dpkg -i vagrant_*.deb

Obtener la caja (box) a obtenerse

Una box hace referencia a la máquina virtual base que se utilizará para crear la que se asociará al proyecto.

$ vagrant box add ubuntu/trusty32

En este caso ubuntu/trusty32 hace referencia al nombre de la imagen que va a descargarse.  Pueden  utilizarse otras imágenes que se encuentran en linea gracias al repositorio oficial de Vagrant.

Los archivos asociados a estas imágenes son descargados bajo el directorio ~/.vagrant.d/boxes.

Crear el archivo de configuración

En el directorio del proyecto ejecutar el siguiente comando

$ vagrant init ubuntu/trusty32

Esto básicamente crea una versión base del archivo Vagrantfile para configurar la máquina virtual y asigna automáticamente la box a utilizarse en el proyecto.

$ vi VagrantFile

   ...
   config.vm.box = "ubuntu/trusty32"
   ...

Una vez se cree la máquina virtual por primera vez (con el primer vagrant up) sus archivos quedarán por defecto bajo ~/VirtualBox\ VMs/.

Reenvío de puertos

Para configurar el reenvío de puertos entre la máquina virtual y la máquina física se deben agregar una o mas opciones config.vm.network al archivo Vagrantfile.

$ vi VagrantFile

   ...
   config.vm.network :forwarded_port, guest: 80, host: 8080
   config.vm.network :forwarded_port, guest: 443, host: 80443
   ...

Configurar la interfaz de red

El acceso a la red de la máquina virtual puede configurarse de manera privada (sólo el host y otras máquinas pueden acceder a ella) o de manera pública en la cual cualquier equipo en la red puede interactúar con la máquina virtual.

Configuración privada

Es posible utilizar una dirección IP estática de la siguiente manera.

$ vi VagrantFile

   ...
   config.vm.network "private_network", ip: "192.168.1.100"
   ...

O una dirección IP dinámica.

$ vi VagrantFile

   ...
   config.vm.network "private_network", type: "dhcp"
   ...

Configuración pública

Al igual que con la configuración privada, es posible asignar una dirección IP estática.

$ vi VagrantFile

   ...
   config.vm.network "public_network", ip: "192.168.1.100"
   ...

O una dirección IP dinámica basada en el DHCP de la red.

$ vi VagrantFile

   ...
   config.vm.network "public_network"
   ...

Directorios sincronizados

Por defecto el directorio /vagrant de la máquina virtual se encuentra sincronizado con el directorio del proyecto en la máquina física, es decir, en este directorio se deberán ubicar los archivos que deberán perdurar en el tiempo.

Es posible especificar otros directorios sincronizados mediante diferentes métodos.

Gestión de la máquina virtual

Iniciar la máquina virtual

$ vagrant up

Acceder a la máquina virtual a través de una sessión de SSH

$ vagrant ssh

Suspender una máquina virtual activa

$ vagrant suspend

En este caso el estado de la máquina en memoria (además de sus archivos) es almacenado en disco.  Su reinicio es muy rápido (entre 5 y 10 segundos).

Detener una máquina virtual activa

$ vagrant halt

Este comando realiza un apagado limpio de la máquina virtual.  El reinicio de la máquina toma un poco mas de tiempo.

Destruir una máquina virtual

$ vagrant destroy

Este comando apaga abruptamente la máquina virtual si esta se encuentra activa y remueve todos los archivos asociados a la misma sin incluir las carpetas compartidas (/vagrant).

Obtener ayuda de los comandos vagrant

Para listar los comandos disponibles utilice el siguiente comando.

$ vagrant list-commands

Para obtener ayuda adicional sobre un comando en especial utilice la siguiente variante.

$ vagrant COMANDO -h

Recursos

Instalar VirtualBox en Scientific Linux 5.5

Introducción.

El procedimiento se basa en el estándar para instalarlo en Red Hat Enterprise Linux o en sus derivados (como CentOS), sin embargo fue necesario realizar una pequeña modificación al archivo de configuración del repositorio ya que la versión que reporta SL ($releasever) es la 5.5 mientras que el repositorio está esperando un 5 (sin decimales) para que coincida con un directorio donde se encuentran los paquetes.

Instalación.

Descargar la especificación del repositorio.

# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Actualizar la especificación del repositorio para que la versión reportada del sistema operativo coincida con el directorio de los paquetes.

# vi virtualbox.repo

(modificar la línea del baseurl como se muestra a continuación)

[virtualbox]
name=RHEL/CentOS-$releasever / $basearch – VirtualBox
## baseurl=http://download.virtualbox.org/virtualbox/rpm/rhel/$releasever/$basearch
baseurl=http://download.virtualbox.org/virtualbox/rpm/rhel/5/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

Mover la especificación del repositorio en su ubicación real.

# mv virtualbox.repo /etc/yum.repos.d/

Instalar VirtualBox.

# yum install VirtualBox

Reconfigurar el módulo del kernel.

# /etc/init.d/vboxdrv setup

Solución de problemas.

NMI watchdog activo.

Si durante la reconfiguración del módulo del kernel surgen problemas que sugieren revisar los mensajes del sistema de la siguiente manera.

# dmesg

Y en ellos aparecen mensajes como el siguiente, es necesario desactivar la función de NMI watchdog del kernel.

vboxdrv: NMI watchdog either active or at least initialized.  Please disable the NMI

Esto se realiza de la siguiente manera.

# vi /boot/grub/menu.lst

(agregar al final de la línea que empieza por kernel)

kernel … nmi_watchdog=0

Reiniciar el sistema operativo para que el cambio realizados surtan efecto.

# reboot

Enlaces.

Instalar VirtualBox en Ubuntu 10.04 (y demás)

Actualización.

Ubuntu 10.10.

Este procedimiento permanece igual para la versión 10.10 de Ubuntu.  Sólo debe tener en cuenta que ahora por defecto Ubuntu sólo incluye apt-get y no a aptitude, así que deberá utilizar al primero para la gestión de paquetes o instalar al segundo y seguir el artículo al pie de la letra.

Introducción.

Sun Oracle VirtualBox es el software de virtualización que prefiero para mis escritorios, incluye mas de la funcionalidad que comúnmente necesito y además es rápido, liviano y libre.

Frecuentemente olvido su procedimiento para instalarlo en GNU/Linux Ubuntu así que a continuación describo como realizar su instalación desde un repositorio de paquetes para la versión 10.04 y cualquier otra en general.

Procedimiento de instalación.

Añadir el repositorio al sistema operativo.

$ echo deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) non-free | sudo tee /etc/apt/sources.list.d/virtualbox.list

Agregar la clave del repositorio.

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add –

Actualizar la información local acerca de los repositorios de paquetes.

$ sudo aptitude update

Instalar VirtualBox.

$ sudo aptitude install virtualbox-3.2

Agregar los usuarios que van a acceder a las máquinas virtuales (en este caso el actual) al grupo virtualbox.

$ sudo adduser $(whoami) vboxusers

Enlaces.

Compactando los discos de Virtualbox con Linux Ubuntu como cliente

Introducción.

Cuando se crean discos virtuales en Virtualbox de tipo dinámico (Dynamically Expanding), a diferencia del estático (Fixed-size), el archivo que lo representa no se crea inicialmente del tamaño solicitado sino que este crece hasta el tamaño elegido a medida que se van agregando archivos.

Después de cierto tiempo de uso, de copiar y borrar archivos, es posible que este termine con un tamaño mayor al tamaño de los archivos que efectivamente contiene, esto quiere decir que hubo un momento en que contenía tal cantidad de información pero que es suceptible ahora de ser compactado.  Esta tarea se puede realizar de cuando en cuando para optimizar el tamaño de estos archivos.

Para este artículo se deberá tener en cuenta que el sistema operativo instalado en la máquina virtual cliente es Linux XUbuntu.

Pasos previos.

  • Liberar todo el espacio posible removiendo los archivos y aplicaciones instaladas que ya no sean necesarios.
  • Remover los archivos temporales que ya no sean necesarios.
  • Limpiar el caché e información fuera de línea del navegador.
  • Remover el caché de los paquetes instalados.

    $ sudo aptitude purge
    $ sudo aptitude clean

Procedimiento.

  1. Inicie la máquina virtual a compactarse desde el live-cd de instalación, ya sea físicamente insertado en la unidad o desde su imagen ISO.

    Configuración del CDROM en Virtualbox.
    Configuración del CDROM en Virtualbox.
  2. Seleccione la opción Try XUbuntu without any change to your computer.

    Inicio del livecd.
    Inicio del livecd.
  3. Instale la aplicación zerofree.
    Instalación de ZeroFree.
    Instalación de ZeroFree.

    $ sudo aptitude install zerofree

  4. Ejecute zerofree de la siguiente manera.

    $ sudo zerofree /dev/sda1

    /dev/sda1 deberá corresponder con la partición que se desea limpiar, ajúste su valor según corresponda en su máquina virtual.  Este paso puede tomar un tiempo proporcional a la cantidad de espacio libre que tenga la unidad.

  5. Al terminar la ejecución de zerofree apague la máquina virtual.
  6. En el huésped abra una consola y acceda al directorio donde se encuentra el archivo que representa el disco a compactar.  En mi caso:

    $ cd /VirtualMachines/XUbuntu9.04
    $ ls -l

    -rwxrwx— 1 root plugdev 3670049280 2009-08-13 19:14 MyHardDrive.vdi

  7. Ejecute el siguiente comando para compactar la unidad.

    $ sudo VBoxManage clonehd MyHardDrive.vdi /VirtualMachines/XUbuntu9.04/MyClonedDrive.vdi

    Reemplace el nombre MyHardDrive con el nombre del archivo del disco duro y MyClonedDrive con un nombre para la copia del archivo del disco duro que se va a generar.

    Es importante establecer la ruta absoluta donde se desea almacenar la copia resultante, /VirtualMachines/XUbuntu9.04/ en este caso, porque de lo contrario será automáticamente almacenada en ~/.VirtualBox/HardDisks/.

  8. Renombre al archivo inicial del disco duro.

    $ mv MyHardDrive.vdi MyHardDrive.vdi.original

  9. Renombre la nueva versión del archivo a su nombre original o el que considere necesario.

    $ mv MyCloneDrive.vdi MyHardDrive.vdi

  10. En la consola de Virtualbox seleccione la máquina virtual y la sección de Hard disks.
  11. Seleccione el disco duro modificado y el icono de Remove attachment.

    Configurar el nuevo disco duro.
    Configurar el nuevo disco duro.
  12. Seleccione el disco duro antigüo y presione los botones de liberar (Release) y remover (Remove).

    Liberar y remover al disco duro antigüo.
    Liberar y remover al disco duro antigüo.
  13. Presione el botón de agregar (Add) y seleccione el nuevo archivo de la imagen del disco.  Para este caso sería /VirtualMachines/XUbuntu9.04/MyHardDrive.vdi.

    Agregar el nuevo disco a la máquina virtual
    Agregar el nuevo disco a la máquina virtual
  14. Presione el botón de seleccionar (Select) y posteriormente el de aceptar (Ok).
  15. Desmote el CDROM de instalación de XUbuntu.

    Desmontar CDROM de la máquina virtual.
    Desmontar CDROM de la máquina virtual.
  16. Inicie la máquina virtual para verificar el correcto funcionamiento del nuevo disco duro compactado.
  17. En caso de estar funcionando todo perfectamente puede si lo desea remover el archivo antigüo de la unidad de disco.  Para este caso:

    $ rm /VirtualMachines/XUbuntu9.04/MyHardDrive.vdi.original

Enlaces.

Dynamically Expanding

Instalación de Debian 5 en VirtualBox 2.2

Introducción.

Después de unos no muy buenos recuerdos instalando Debian hace unos años, probablemente la versión 3, ahora aprovechando el  lanzamiento hace 5 días de la versión 5, alias Lenny,  me dispongo a darle una segunda oportunidad a Debian después de una larga experiencia con unos de sus hijos: Ubuntu.

Hasta el momento es poco lo que puedo opinar acerca del nuevo Debian, sin embargo el proceso de instalación gráfico que utilicé esta vez dista mucho del confuso proceso de instalación en modo texto que complicó mis días hace un tiempo, sin contar con que ahora ya lo tengo en un DVD y no en cinco CDs como antes.  La instalación gráfica aunque sencilla me pareció muy larga y en algunas partes muy poco intuitiva, especialmente en la sección de manipular las particiones del disco.  Me parece interesante intentar nuevamente el instalador en modo texto para ver como ha mejorado en este tiempo.

A continuación se detalla gráficamente el proceso de instalación seguido para instalar a Debian 5 en una máquina virtual VirtualBox 2.2 sin nada mas que los paquetes estándar.

Instalación de Debian en VirtualBox.

Instalación de los Guest Additions de VirtualBox para Debian.

En una terminal ejecutar los siguientes comandos.

$ su –

# aptitude install gcc linux-headers-$(uname -r) make

En la ventana de VirtualBox seleccionar las siguientes opciones del menú.  Debe verificarse que no se tenga montando un medio en la unidad de CD/DVD previamente.

Devices > Install Guest Additions …

De nuevo en la terminal ejecutar los siguientes comandos.

# cd /media/cdrom

# sh VBoxLinuxAdditions-x86.run

Después de instaladas las aplicaciones adicionales es necesario reiniciar el sistema operativo huésped.

# reboot.

Enlaces.

Instalación de VirtualBox 2.2 en Ubuntu Linux 8.04

Agregar el repositorio de VirtualBox al sistema operativo.

$ sudo gedit /etc/apt/sources.list

#VirtualBox
deb http://download.virtualbox.org/virtualbox/debian intrepid non-free

Descargar e instalar la llave de apt-secure.

$ wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add –

Actualizar la información relacionada con los paquetes y sus versiones.

$ sudo apt-get update

Instalar VirtualBox 2.2 y sus dependencias.

$ sudo apt-get install dkms

$ sudo apt-get install virtualbox-2.2

Ejecutar VirtualBox desde línea de comando.

$ /usr/bin/VirtualBox &

Enlaces.

Actualizar VirtualBox en OpenSuse 11.1

Extrañamente los repositorios que tengo en OpenSuse (los que venían por defecto) rara vez tienen versiones actualizadas del software, por eso he tenido que buscar nuevos repositorios para los paquetes que quiero actualizar.  Esto no me agrada, los repositorios estándar deberían mantenerse al día.

Desinstalación.

Casi siempre es conveniente desinstalar el software antigüo e instalar la nueva versión en lugar de sobreescribirlo.  VirtualBox parece ser el caso.

$ sudo zypper remove virtualbox virtualbox-ose-guest-tools virtualbox-ose-kmp-default virtualbox-ose-kmp-pae

Instalación.

Para actualizar VirtualBox, tenía la versión 2.0.6 OSE que había instalado inicialmente, se debe acceder al siguiente enlace desde Firefox.

http://software.opensuse.org/ymp/Virtualization:VirtualBox/openSUSE_11.1/virtualbox-ose.ymp

Reinciar el VirtualBox kernel module.

$ sudo /etc/init.d/vboxdrv setup

La versión con la que terminé después de la actualización fue la 2.1.2 OSE.

Otras formas de instalación.

Después de actualizado el repositorio la actualización puede hacerse con los siguientes pasos.

$ sudo zypper update

$ sudo zypper install virtualbox virtualbox-ose-guest-tools virtualbox-ose-kmp-default

De igual manera se debe reiniciar el VirtualBox kernel module como se indica en el procedimiento anterior.

Una tercera forma de instalación es la de obtener manualmente los paquetes (*.rpm) de la actualización desde el siguiente enlace e instalarlos con zypper install desde la línea de comando.

http://download.opensuse.org/repositories/Virtualization:/VirtualBox/openSUSE_11.1/i586/