Cambio de paradigma
Maneja tu infraestructura como tu software
- Utiliza software de control de versiones para las configuraciones y especificaciones
- Todo debe ser legible
- Automatiza
DevOps...¿Esoqueloqué?
Vagrant. Introducción
- Aplicación libre desarrollada en ruby para crear de forma sencilla un entorno de trabajo complejo
- El objetivo principal es aproximar los entornos de desarrollo y producción.
- Utiliza un entorno de máquinas virtuales (Virtualbox por defecto)
- Herramienta imprescindible para devops
- Potente uso didáctico
- Su lema:
Development environments made easy: Create and configure lightweight, reproducible, and portable development environments.
Vagrant. Instalación
- Instalar virtualbox
- Instalar vagrant (descargar de http://vagrantup.com)
- Notas:
- Es posible utilizar otros proveedores, pero el mejor documentado es virtualbox.
- Existen versiones de vagrant para GNU/Linux, Apple OS X y Ms Windows
- Vagrant tiene un fuerte desarrollo, por lo que hay bastantes diferencias entre versiones
- En Debian Wheezy se incluye vagrant 1.0.3, mientras que la ultima versión disponible (Marzo 2014) es 1.5.1
- Si empiezas ahora es recomendable utilizar vagrant ≥ 1.2.0 porque se ha modificado la API a la versión 2
Vagrant. Vagrantbox
- Un box es una máquina virtual empaquetada.
- Vagrant proporciona algunos boxes oficiales, con idéntica clave ssh por lo que no son válidos para entornos en producción
- Listado incompleto y no oficial de boxes http://www.vagrantbox.es
- Siempre es posible hacerse un box a medida, aunque en la mayor de los casos no es necesario
- Para poder utilizar un box es necesario agregarlo al equipo:
vagrant box add {title} {url}
- En el caso de sistemas UNIX, esto hace que se descargue y descomprima el box en ~/.vagrant.d/boxes/
Vagrant. Vagrantfile
- Un fichero de nombre Vagrantfile describe una o varias instancias para crear un entorno vagrant en el directorio en el que se encuentre.
- Se pueden tener varios entornos vagrant independientes, ubicando ficheros Vagranfile en diferentes directorios.
- Se puede crear un Vagrantfile mínimo con:
vagrant init
Vagrant. Ejemplo de Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.network :private_network, ip: "10.1.1.2"
end
Vagrant. Utilización básica
Todas las instrucciones se aplican sobre el Vagrantfile del directorio en el que se ejecuten
vagrant up
Recargar el entorno (reinicia las máquinas y aplica los cambios):
vagrant reload
Vagrant. Utilización básica (2)
vagrant ssh [nombre_instancia]
Suspender, apagar o destruir:
vagrant suspend
vagrant halt
vagrant destroy