Vagrant
Create and configure lightweight, reproducible, and
portable development environments.
Que es y cual es su funcion?
   Vagrant es un sistema basado en Vbox que gestiona las VM
    a través de consola y permite provisionar una configuración
    durante el arranque de la misma.
   Con un fichero que ocupe pocos Kb puedes tener una VM
    funcionando en un entorno configurado, solo necesitas
    Vbox, Vbox Guest additions y la aplicación de Vagrant.
   La idea básicamente es generarte tu repositorio de
    Vagranfiles donde tengas configuraciones prefijadas para tu
    iniciativa o para gestionar todas las iniciativas a tu cargo
   Se integra con Puppet, Cheff y Bash, por lo tanto la provisión
    se puede complicar tanto como lo necesites
   Aquí os dejo un ChearSheet de todas las opciones que
    puede usar Vagrant y customizacion con Vagrantfile
            https://gist.github.com/4157450
Y así es como se levanta una Maquina Virtual a través de
Vagrant, ha dado un error con la carpeta compartida, eso
suele pasar cuando no se le ha aplicado el Guest additions
con la versión adecuada a la VM. La version de Vbox y el
GA debe ser la misma
Trasteando un poco…
  Así es como se accede a la VM




Esta es la pinta del Vagrantfile
Trasteando…
  Que pasa si no tengo ni idea de usarlo y quiero mi maquina
   ya para probar??
    Nos vamos a vagrantbox.es y elegimos la distro que queramos
     usar, nos apuntamos la URL y en la linea de comandos ponemos
     esto:




  Tras terminar de bajarse ponemos modificamos el nombre dentro del
  Vagrantfile para que sea el nombre que le hemos puesto en este caso
  arch_x86_64, vagrant up y ya tenemos entorno
Empaquetado y Destrucción
 Que no te interesan las que están ahí arriba?, perfecto hazte
  la tuya a través de Vbox….a que ya la tienes, mejor aún, haz
  lo siguiente:




 Puedes especificarle un Vagrantfile para empaquetarlo dentro de la box

 Que la lías con la maquina, te la cargas y pones de
 nuevo vagrant up:
Vamos a lo interesante…
   La provisión es lo que tiene gran potencial, después de
    bajarte la box y tener clara mas o menos la configuración
    pasamos a la parte de provision:

 Dentro de la opción path, le indicas la
 carpeta donde se encuentran tus .pp y en
 el file le declaras el inicial



Aquí muestro la provisión
con Chef y Bash, puedes
simplemente ejecutar una
línea o llamar a los scripts
que necesites.

Puedes incluir tu
manifests ya creado
dentro del package
Multiples VM´s simultaneas
      Con un solo Vagrantfile puedes declarar que quieres
       levantar varias maquinas

Este Vagrantfile levantaría 2
maquinas, una con el servidor
web y otra con un Mysql

Para levantar una solo ponemos
vagrant up web (en este caso) o
db y a funcionar 

Si algo falla, esto de aquí abajo
es el modo Debug

                                    Para hacerlas que se vean hay
                                    que configurarles la ip
Integración con Jenkins
   Ya que todas las iniciativas disponen de un Jenkins, es
    bueno que la integración sea fácil e indolora.
   Dentro del Gist hay un link donde esta el Plugin de Vagrant
    para jenkins.
   Tiene varias ventajas, por ejemplo puedes probar una
    provisión con Puppet o simplemente desplegar tu software
    dentro de la maquina y comprobar que funciona
    perfectamente el despliegue en una maquina nueva
    completamente.
Plugin de Vagrant para Jenkins
Links interesantes
   Vagrant info: http://vagrantup.com/v1/docs/index.html
   Vagrant Boxes: http://www.vagrantbox.es/
   Plugin para Jenkins: https://wiki.jenkins-
    ci.org/display/JENKINS/Vagrant+Plugin
   Puppetlabs: http://docs.puppetlabs.com/
   Vbox Requires: https://www.virtualbox.org/wiki/Downloads

Curso Vagrant

  • 1.
    Vagrant Create and configurelightweight, reproducible, and portable development environments.
  • 2.
    Que es ycual es su funcion?  Vagrant es un sistema basado en Vbox que gestiona las VM a través de consola y permite provisionar una configuración durante el arranque de la misma.  Con un fichero que ocupe pocos Kb puedes tener una VM funcionando en un entorno configurado, solo necesitas Vbox, Vbox Guest additions y la aplicación de Vagrant.  La idea básicamente es generarte tu repositorio de Vagranfiles donde tengas configuraciones prefijadas para tu iniciativa o para gestionar todas las iniciativas a tu cargo  Se integra con Puppet, Cheff y Bash, por lo tanto la provisión se puede complicar tanto como lo necesites  Aquí os dejo un ChearSheet de todas las opciones que puede usar Vagrant y customizacion con Vagrantfile https://gist.github.com/4157450
  • 3.
    Y así escomo se levanta una Maquina Virtual a través de Vagrant, ha dado un error con la carpeta compartida, eso suele pasar cuando no se le ha aplicado el Guest additions con la versión adecuada a la VM. La version de Vbox y el GA debe ser la misma
  • 4.
    Trasteando un poco… Así es como se accede a la VM Esta es la pinta del Vagrantfile
  • 5.
    Trasteando…  Quepasa si no tengo ni idea de usarlo y quiero mi maquina ya para probar??  Nos vamos a vagrantbox.es y elegimos la distro que queramos usar, nos apuntamos la URL y en la linea de comandos ponemos esto: Tras terminar de bajarse ponemos modificamos el nombre dentro del Vagrantfile para que sea el nombre que le hemos puesto en este caso arch_x86_64, vagrant up y ya tenemos entorno
  • 6.
    Empaquetado y Destrucción Que no te interesan las que están ahí arriba?, perfecto hazte la tuya a través de Vbox….a que ya la tienes, mejor aún, haz lo siguiente: Puedes especificarle un Vagrantfile para empaquetarlo dentro de la box Que la lías con la maquina, te la cargas y pones de nuevo vagrant up:
  • 7.
    Vamos a lointeresante…  La provisión es lo que tiene gran potencial, después de bajarte la box y tener clara mas o menos la configuración pasamos a la parte de provision: Dentro de la opción path, le indicas la carpeta donde se encuentran tus .pp y en el file le declaras el inicial Aquí muestro la provisión con Chef y Bash, puedes simplemente ejecutar una línea o llamar a los scripts que necesites. Puedes incluir tu manifests ya creado dentro del package
  • 8.
    Multiples VM´s simultaneas  Con un solo Vagrantfile puedes declarar que quieres levantar varias maquinas Este Vagrantfile levantaría 2 maquinas, una con el servidor web y otra con un Mysql Para levantar una solo ponemos vagrant up web (en este caso) o db y a funcionar  Si algo falla, esto de aquí abajo es el modo Debug Para hacerlas que se vean hay que configurarles la ip
  • 9.
    Integración con Jenkins  Ya que todas las iniciativas disponen de un Jenkins, es bueno que la integración sea fácil e indolora.  Dentro del Gist hay un link donde esta el Plugin de Vagrant para jenkins.  Tiene varias ventajas, por ejemplo puedes probar una provisión con Puppet o simplemente desplegar tu software dentro de la maquina y comprobar que funciona perfectamente el despliegue en una maquina nueva completamente.
  • 10.
    Plugin de Vagrantpara Jenkins
  • 11.
    Links interesantes  Vagrant info: http://vagrantup.com/v1/docs/index.html  Vagrant Boxes: http://www.vagrantbox.es/  Plugin para Jenkins: https://wiki.jenkins- ci.org/display/JENKINS/Vagrant+Plugin  Puppetlabs: http://docs.puppetlabs.com/  Vbox Requires: https://www.virtualbox.org/wiki/Downloads