Instalación y utilización de Vagrant

Vagrant es una herramienta de código abierto (escrita en Ruby) diseñada para automatizar la creación y configuración de ambientes de trabajo de manera fácil, portable y repetible. Puede ser visto como una envoltorio alrededor del software de virtualización.

En el caso de los desarrolladores de software es una forma de decir adiós al «funciona en mi maquina» ya que todos los miembros del equipo estarán ejecutando el mismo código en un ambiente con las mismas dependencias y configurado de la misma forma. Para los ingenieros de operaciones, Vagrant provee un ambiente desechable y consistente que permite desarrollar y probar scripts de administración de infraestructura. Y por ultimo, a los diseñadores web les permite configurar todo lo necesario para poder concentrarse exclusivamente en el diseño de un portal.

Su instalación es sencilla y varia dependiendo del sistema operación y/o la distribución utilizada, y se realiza a través de su sitio oficial. Por otra parte, se requiere de un provisionador local como puede ser VirtualBox o VMware.

Nota: Todas las instalaciones pueden ser realizadas por medio de chocolatey

    C:\Users\electrocucaracha\>cinst vagrant
    
    C:\Users\electrocucaracha\>cinst virtualbox
    

Una vez instalado es necesario generar el archivo Vagrantfile, en el se especifica los detalles del provisionamiento, sus dependencias y la configuración del ambiente de trabajo, para ello es necesario ejecutar el comando de inicialización.

vagrant init

C:\Users\electrocucaracha\demo-vagrant>vagrant init precise64
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.

Para poder comenzar con la construcción del ambiente es necesario contar con una imagen base del sistema operativo que usaremos. Dichas imágenes (mejor conocida como «boxes» dentro del argot de Vagrant) pueden ser descargadas del catalogo publicado en el sitio oficial de Vagrant, solo hay que tomar en cuenta el provisionador que estemos utilizando(VirtualBox o VMWare). En nuestro ejemplo, al especificar el parámetro «precise64» nos referimos a la imagen de Ubuntu 12.04 LTS (Precise) de arquitectura de 64 bits. Vagrant cuenta con un comando para agregar dicha imagen a nuestro catalogo local.

vagrant box add

C:\Users\electrocucaracha\demo-vagrant>vagrant box add precise64 http://files.vagrantup.com/precise64.box
Downloading box from URL: http://files.vagrantup.com/precise64.box

Una vez incorporada la imagen a nuestro catalogo local y después de haber terminado de especificar los detalles del ambiente de trabajo en el archivo Vagrantfile tendremos todo lo necesario para poder construir el ambiente de trabajo.

vagrant up

C:\Users\electrocucaracha\demo-vagrant>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'precise64'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...

...

stdin: is not a tty
[default] Mounting shared folders...
[default] -- /vagrant

Después de unos minutos y una vez terminado el proceso de construcción, podemos accesar a la maquina por medio de algún cliente que soporte el protocolo ssh.

Nota: Vagrant porporciona una manera sencilla que nos permite eliminar el ambiente de trabajo.

vagrant destroy

C:\Users\electrocucaracha\demo-vagrant>vagrant destroy -f
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...