Entorno de desarrollo rápido con Vagrant

16
Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña @crazyserver #mootes15 #vagrant 24.10.2015

Transcript of Entorno de desarrollo rápido con Vagrant

Entorno de desarrollo rápido con Vagrant

Pau Ferrer Ocaña @crazyserver

#mootes15 #vagrant24.10.2015

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

2

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

¿Qué es Vagrant?★ Herramienta para crear un entorno

de desarrollo

★ Basado en máquinas virtuales

★ Reduce el tiempo de creación

HASHICORP

3

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

¿Cómo funciona?

★ Disponible para cualquier PC

★ Provider: Utiliza una máquina

virtual para funcionarSoporta VirtualBox, VMWare, Docker…

★ Box: Necesita de imágenes baseUbuntu Server 14.04

★ Provision: Usa scripts que definen su instalación

4

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

Crear mi propia máquina virtual

con vagrant

5

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

1. Escoger un provider > motor de la máquinaVagrant fue creado inicialmente para funcionar con VirtualBox.

Sin embargo pueden usarse otros motores:

★ VirtualBox

★ VMWare

★ Docker: No es una MV, es un contenedor

★ Windows Server Hyper-V

★ Custom: También se puede usar uno personalizado

6

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

El caso de DockerDocker es un proyecto de software libre que automatiza el despliegue de las aplicaciones mediante contenedores.

La aplicación proporciona una capa de abstracción y automatización a nivel de virtualización del sistema operativo (sólo Linux).

7

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

2. Escoger una Box > Imagen preconfigurada de una MV★ Existe una gran variedad de Boxes disponibles.

★ Catálogo: https://atlas.hashicorp.com/boxes/search

★ Se pueden crear nuevas y compartirlas.

★ Se actualizan de manera regular sin afectar a nuestra máquina

¿Qué podemos encontrar?★ Ubuntu mantiene varias versiones de su versión para servidores para

VirtualBox

★ Existen varias con Moodle preinstalado

8

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

3. Configurar la máquina > Vagrantfile

Se pueden usar comandos para

crear y configurar la máquina

Es mucho más cómodo editar

el fichero de configuración que

define la máquina

9

Pau Ferrer Ocaña

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

4. Aprovisionar la máquina > Instalación con devopsExisten varios métodos para aprovisionar la máquina:

★ Shell: Se usa un script con comandos para crear la máquina.

★ Ansible: Scripts en YAML, muy sencilla de usar

★ Chef: Un poco más complicada pero robusta. Ruby DSL. Usa “recetas”

★ Puppet: Mucho más complicada. Usa módulos y lenguaje declarativo

★ CFEngine: No soporta MacOS. Lenguaje declarativo

★ SaltStack: Scripts en YAML. Empezó como un sistema de orquestación

★ Docker: Scripts de provisioning de Docker

Además de todas ellas podemos buscar recetas que podemos incorporar

10

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

5. Disfrutar > Comandos de usoTodos los comandos se ejecutan desde el directorio donde esté el fichero

Vagrantfile.

★ vagrant up: Arranca la máquina, si és la primera vez, descarga el box y lo

aprovisiona.

★ vagrant halt: Apaga la máquina de manera segura.

★ vagrant reload: Reinicia la máquina

★ vagrant destroy: Destruye la máquina (se deberá aprovisionar de nuevo)

★ vagrant ssh: Entra por ssh a la máquina

★ vagrant box update: Actualiza el box con el del servidor. No necesita

reaprovisionar.

11

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

5. Compartir★ Compartir la máquina en funcionamiento

○ Se necesita un usuario en https://atlas.hashicorp.com/

○ Ejecutar vagrant login y vagrant share

○ Compartir el URL con quien queramos. No es necesario que tengan nada específico instalado.

○ Entrar en remoto a la máquina: vagrant connect NAME --ssh

○ Clonar la máquina en remoto: vagrant connect NAME

★ Compartir la Box: https://atlas.hashicorp.com/help/packer/features

○ Se necesita Packer para crear la box

○ Se ha de indicar la ruta en Vagrantfile

★ Compartir la instalación:

○ Los archivos de aprovisionamiento y Vagrantfile se pueden compartir con facilidad

○ https://github.com/crazyserver/vagrant_moodle

12¡PROBADLA!

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

VAGRANT y MOODLE★ Ubuntu 14.04

★ Apache2 + PHP 5.5

○ Error reporting activado

○ Opcache configurada

○ Memcache

○ XDebug

★ DB: MySQL 5.5 PostgreSQL 9.3 o

Oracle 11g

★ NodeJS + Ionic

★ Moodle y Moodle Mobile 2 en local

13

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

Alternativas

14

¿?

Entorno de desarrollo rápido con Vagrant Pau Ferrer Ocaña

Y el año que viene...

Entorno de

desarrollo rápido

con Docker

15

Entorno de desarrollo rápido con Vagrant

Pau Ferrer Ocaña @crazyserver

#mootes15 #vagrant24.10.2015

http://goo.gl/4HPWpz