Ventajas e incovenientes de las diferentes opciones disponibles para configurar entornos de desarrollo en equipos de trabajo mixtos. Introducción a Vagrant, una herramienta para crear, configurar y desplegar entornos virtuales.
5. “ensucias” tu máquina
interferencia con software habitual
diferentes librerías para diferentes
proyectos
no se puede portar (no fácilmente)
características diferentes del entorno de
producción
inconvenientes
13. entorno independiente de tu
máquina
puede tener mismas
características que el entorno
de producción
ventajas
14. soltar pa$$ta (aunque hay entornos
gratuitos y otros cada vez más
asequibles: digitalocean, linode...
pay-per-use)
necesidad de acceso a internet
push code / changes to server
inconvenientes
15. Ventajas: mismo entorno para el equipo
Inconvenientes: mismo entorno para el equipo
Si además eres parte de un equipo...
21. y si además el entorno se estropea
pasado un tiempo...
22.
23. free** & opensource
https://github.com/mitchellh/vagrant
primera release v.0.1.0
marzo 2010
h"ps://github.com/mitchellh/vagrant/wiki/Available-‐Vagrant-‐Plugins
herramienta que nos permite
crear y configurar de forma ligera
(con código, en texto plano)
entornos de desarrollo
reproducibles y portables
24. CLI (ruby) que permite
configurar y administrar
herramientas de
virtualización
(por defecto virtualbox)
25. Virtualbox
(provider
por
defecto**)
h"ps://www.virtualbox.org/wiki/Downloads
Vagrant
(necesita
ruby)
h"p://downloads.vagrantup.com/
(también
como
gema:
gem
install
vagrant
–no-‐ri
–
no-‐rdoc)
instalación
28. Wait... boxes?
Son “máquinas esqueleto/base”, preconfiguradas
(usuarios root/vagrant, ruby, puppet...)
Cuando ejecutamos
vagrant box add [box-name] [box-url/box-path]
Indicamos a vagrant que descargue (si especificamos url) o
copie (si especificamos un path) en nuestro directorio local
.vagrant.d/boxes dicha máquina y le asigne el alias “box-name”
29. Wait... boxes?
¿De dónde obtenemos más máquinas?
http://www.vagrantbox.es/
http://cloud-images.ubuntu.com/vagrant/
¿Y si queremos hacernos una?
Comando: vagrant package
https://github.com/jedi4ever/veewee
31. Sólo tenemos una máquina básica
Para configurar e instalar software de forma desatendida vagrant nos
ofrece los siguientes métodos de aprovisionamiento:
• Puppet http://puppetlabs.com/ (https://puphpet.com )
• Chef http://www.opscode.com/chef/ (http://rove.io/ )
• Ansible http://www.ansibleworks.com/
• Shell
(Más
https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins)
¿Cuándo se ejecuta?
En el primer vagrant up (para evitarlo: --no-provision)
En una máquina corriendo: vagrant provision
33. ¿Quién usa vagrant?
“Tuen&-‐in-‐a-‐box.
Es
lo
que
usan
los
desarrolladores
para
trabajar
y
es
un
perfil
de
VM
que
ejecuta
un
perfil
de
puppet
que
provisiona
una
infraestructura
completa
para
que
un
desarrollador
tenga
un
"mini
Tuen&"
en
local.
Con
todo
el
development
environment
necesario.
Usando
Vagrant,
el
desarrollador
es
libre
de
hacer
lo
que
le
de
la
gana
en
su
propio
host
y
podrá
destruir
la
VM
y
levantarla
con
un
solo
comando
cada
vez
que
quiera,
y
por
supuesto,
consumir
los
recursos
que
quiera
sin
afectar
a
nadie.”
-‐
Victor
García
(Tuen&
DevOps
Engineer)
h"ps://drupal.org/project/vdd