SlideShare une entreprise Scribd logo
1  sur  120
D e v e l o p m e n t
e n v i r o n m e n t s
m a d e e a s y
Todo comenzó con
Discourse
Discourse
‣ Una nueva plataforma de discución
Discourse
‣ Una nueva plataforma de discución
‣ Gratis, Libre y Simple
Discourse
‣ Una nueva plataforma de discución
‣ Gratis, Libre y Simple
‣ Creado por Jeff Atwood (@codinghorror)
Discourse
‣ Una nueva plataforma de discución
‣ Gratis, Libre y Simple
‣ Creado por Jeff Atwood (@codinghorror)
‣ Creador de StackOverflow
Discourse
‣ Una nueva plataforma de discución
‣ Gratis, Libre y Simple
‣ Creado por Jeff Atwood (@codinghorror)
‣ Creador de StackOverflow
‣ Blog http://www.codinghorror.com/blog/
Discourse Install Guide
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
Virtual Box?
Vagrant?
Que es Vagrant?
‣ Es una forma de administrar Máquinas Virtules (MV)
Que es Vagrant?
‣ Es una forma de administrar Máquinas Virtules (MV)
‣ Puede correr diferentes Sistemas Operativos
Que es Vagrant?
‣ Es una forma de administrar Máquinas Virtules (MV)
‣ Puede correr diferentes Sistemas Operativos
‣ Las MV se pueden definir en código
Que es Vagrant?
‣ Es una forma de administrar Máquinas Virtules (MV)
‣ Puede correr diferentes Sistemas Operativos
‣ Las MV se pueden definir en código
‣ Vagrant utiliza VirtualBox para construir MV que son
configurables, ligereas y portables.
Que es Vagrant?
Por que Vagrant?
Por que Vagrant?
‣ Problemas al crear un ambiente de desarollo
Por que Vagrant?
‣ Problemas al crear un ambiente de desarollo
‣ Toma mucho tiempo y por lo general necesitas
soporte.
Por que Vagrant?
‣ Problemas al crear un ambiente de desarollo
‣ Toma mucho tiempo y por lo general necesitas
soporte.
‣ Requieres de documentación que la mayoría de las
veces esta desactualizada.
Por que Vagrant?
‣ Problemas al crear un ambiente de desarollo
‣ Toma mucho tiempo y por lo general necesitas
soporte.
‣ Requieres de documentación que la mayoría de las
veces esta desactualizada.
‣ Si cometes un error en tú ambiente, te puede tomar
días repararlo.
Por que Vagrant?
‣ Problemas al crear un ambiente de desarollo
‣ Toma mucho tiempo y por lo general necesitas
soporte.
‣ Requieres de documentación que la mayoría de las
veces esta desactualizada.
‣ Si cometes un error en tú ambiente, te puede tomar
días repararlo.
‣ Puede producir resultados inesperados.
Por que Vagrant?
‣ Tu entorno de desarollo y producción no son los
mismos!
Por que Vagrant?
‣ Tu entorno de desarollo y producción no son los
mismos!
‣ Diferentes Sistemas Operativos.
Por que Vagrant?
‣ Tu entorno de desarollo y producción no son los
mismos!
‣ Diferentes Sistemas Operativos.
‣ Direrentes versiones de PHP/Phyton/Ruby.
Por que Vagrant?
‣ Tu entorno de desarollo y producción no son los
mismos!
‣ Diferentes Sistemas Operativos.
‣ Direrentes versiones de PHP/Phyton/Ruby.
‣ No coincíden las versiones de las librerías.
Por que Vagrant?
‣ Tu entorno de desarollo y producción no son los
mismos!
‣ Diferentes Sistemas Operativos.
‣ Direrentes versiones de PHP/Phyton/Ruby.
‣ No coincíden las versiones de las librerías.
‣ Diferentes archivos de configuración.
Por que Vagrant?
Por que Vagrant?
‣ No tienes idea de porque el mismo código si
funciona en tu máquina.
Por que Vagrant?
‣ No tienes idea de porque el mismo código si
funciona en tu máquina.
‣ funcionaba en mi máquina!!!!!.
Por que Vagrant?
‣ No tienes idea de porque el mismo código si
funciona en tu máquina.
‣ funcionaba en mi máquina!!!!!.
Por que Vagrant?
Por que Vagrant?
‣ Con Vagrant puedes hacer el setup de tú ambiente
mucho mas rápido.
Por que Vagrant?
‣ Con Vagrant puedes hacer el setup de tú ambiente
mucho mas rápido.
‣ Maximiza la compatibilidad entre el ambiente de
producción y desarrollo.
Por que Vagrant?
‣ Con Vagrant puedes hacer el setup de tú ambiente
mucho mas rápido.
‣ Maximiza la compatibilidad entre el ambiente de
producción y desarrollo.
‣ No mas “En mi maquina si funciona!”.
Por que Vagrant?
Introducción
Introducción
‣ Instalamos los siguientes paquetes.
Introducción
‣ Instalamos los siguientes paquetes.
‣ VirtualBox (https://www.virtualbox.org/wiki/
Downloads).
Introducción
‣ Instalamos los siguientes paquetes.
‣ VirtualBox (https://www.virtualbox.org/wiki/
Downloads).
‣ Vagrant (http://downloads.vagrantup.com/).
Introducción
Introducción
Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
Introducción
Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
Introducción
Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
Inicializamos nuestro Workspace.
$ vagrant box add precise32 http://files.vagrantup.com/precise32.box
$ cd workspace
$ vagrant init precise32
Introducción
Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
Inicializamos nuestro Workspace.
Vagrantfile
A Ruby DLS (Domiain Specific Language)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise32"
end
Run Baby Run!!
Run Baby Run!!
Para levantar nuestra MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
Para entrar a la MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant shh
Para entrar a la MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant shh
Para entrar a la MV
Para cerrar la MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant shh
Para entrar a la MV
$ vagrant halt
Para cerrar la MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant shh
Para entrar a la MV
$ vagrant halt
Para cerrar la MV
Para eliminar la MV
$ vagrant up
Run Baby Run!!
Para levantar nuestra MV
$ vagrant shh
Para entrar a la MV
$ vagrant halt
Para cerrar la MV
$ vagrant destroy
Para eliminar la MV
Vagrant Defaults
Vagrant Defaults
‣ Default username “vagrant”
Vagrant Defaults
‣ Default username “vagrant”
‣ Default password “vagrant”
Vagrant Defaults
‣ Default username “vagrant”
‣ Default password “vagrant”
‣ /vagrant es tú workspace en la MV (este folder es
compartido)
Que mas?
Que mas?
‣ Podemos instalar todas nuestras depencias una
sola vez.
Que mas?
‣ Podemos instalar todas nuestras depencias una
sola vez.
‣ Podemos hacer nuestra MV igual a nuestro
ambiente de producción.
Que mas?
‣ Podemos instalar todas nuestras depencias una
sola vez.
‣ Podemos hacer nuestra MV igual a nuestro
ambiente de producción.
‣ Podemos hacer un “Base Box” y compartirla entre
nosotros.
Que mas?
‣ Podemos instalar todas nuestras depencias una
sola vez.
‣ Podemos hacer nuestra MV igual a nuestro
ambiente de producción.
‣ Podemos hacer un “Base Box” y compartirla entre
nosotros.
‣ Cuanto tiempo nos podemos ahorrar??
Depenencias
Depenencias
Usando APT (Advanced Packaging Tool)
$ sudo apt-get update
$ sudo apt-get install git-core curl build-essential openssl libssl-dev
Depenencias
Usando APT (Advanced Packaging Tool)
Package
Package
Creamos nuestro box
$ vagrant package
Package
Creamos nuestro box
$ vagrant package
Package
Creamos nuestro box
Esto genera un package.box que podemos usar de la
siguiente manera:
$ vagrant package
Package
Creamos nuestro box
$ vagrant box add base package.box
Esto genera un package.box que podemos usar de la
siguiente manera:
Discourse Install Guide
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
‣ Open a terminal
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
‣ Open a terminal
‣ Clone the project: git clone https://github.com/
discourse/discourse.git
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
‣ Open a terminal
‣ Clone the project: git clone https://github.com/
discourse/discourse.git
‣ Enter the project directory: cd discourse
Discourse Install Guide
‣ Install Git: http://git-scm.com/downloads
‣ Install VirtualBox
‣ Install Vagrant
‣ Open a terminal
‣ Clone the project: git clone https://github.com/
discourse/discourse.git
‣ Enter the project directory: cd discourse
‣ vagrant up
Provisioners
Provisioners
Provisioners
‣ Lanzar una MV en blanco no es muy útil
Provisioners
‣ Lanzar una MV en blanco no es muy útil
‣ Permiten hacer el setup de nuesta MV mucho mas
fácil
Provisioners
‣ Lanzar una MV en blanco no es muy útil
‣ Permiten hacer el setup de nuesta MV mucho mas
fácil
‣ Opcionales, si quieres instalar el software a
manualmente es desición propia.
Provisioners
‣ Lanzar una MV en blanco no es muy útil
‣ Permiten hacer el setup de nuesta MV mucho mas
fácil
‣ Opcionales, si quieres instalar el software a
manualmente es desición propia.
‣ Puedes crear tú propio provisioner
Provisioners
‣ Lanzar una MV en blanco no es muy útil
‣ Permiten hacer el setup de nuesta MV mucho mas
fácil
‣ Opcionales, si quieres instalar el software a
manualmente es desición propia.
‣ Puedes crear tú propio provisioner
‣ solo si le sabes al ruby XD
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise32"
# Bootstrap vm from external shell script
config.vm.provision :shell, :path => "bootstrap.sh"
end
http://docs.vagrantup.com/v2/provisioning/shell.html
Shell
#!/bin/bash
echo I am provisioning...
date > /etc/vagrant_provisioned_at
bootstrap.sh
Masterless
Masterless
‣ Instalamos Vagrant
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
‣ Actualizamos nuestro Vagrantfile [2]
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
‣ Actualizamos nuestro Vagrantfile [2]
‣ Colocamos nuestro minion config dentro de salt/minion [1]
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
‣ Actualizamos nuestro Vagrantfile [2]
‣ Colocamos nuestro minion config dentro de salt/minion [1]
‣ Hacemos un vagrant up.
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
‣ Actualizamos nuestro Vagrantfile [2]
‣ Colocamos nuestro minion config dentro de salt/minion [1]
‣ Hacemos un vagrant up.
‣ [1] Asegúrate de que el minion config establezca la propiedad
file_client: local para la configuración masterless
Masterless
‣ Instalamos Vagrant
‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64
http://files.vagrantup.com/precise64.box
‣ Actualizamos nuestro Vagrantfile [2]
‣ Colocamos nuestro minion config dentro de salt/minion [1]
‣ Hacemos un vagrant up.
‣ [1] Asegúrate de que el minion config establezca la propiedad
file_client: local para la configuración masterless
‣ [2] No olvides crear un ”shared folder” para la configuración de salt
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise32"
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine.
config.vm.network :forwarded_port, guest: 3200, host: 3200
config.vm.synced_folder "srv/", "/srv/"
config.vm.provision :salt do |salt|
## Minion config is set to ``file_client: local`` for masterless
salt.minion_config = "srv/minion"
salt.run_highstate = true
end
end
Configuración
Demo
https://github.com/rauluranga/VagrantTest
Vagrant Workflow
DevOps
Gracias!
Links
‣ vagrant: vagrantup.com
‣ boxes: vagrantbox.es
‣ docs: docs.vagrantup.com/v2
‣ salt: saltstack.com
‣ discourse: discourse.org
‣ try: try.discourse.org
‣ github: github.com/discourse/discourse
Contacto
‣ email: ruranga@grupow.com
‣ twitter: @rauluranga
‣ facebook: facebook.com/uranga.raul
‣ google: plus.google.com
‣ github: github.com/rauluranga
‣ blog: labs.grupow.com/

Contenu connexe

Tendances

De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Dev ops infraestructura agil con open source
Dev ops   infraestructura agil con open sourceDev ops   infraestructura agil con open source
Dev ops infraestructura agil con open sourcescrumecuador
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Christian Rodriguez
 
Una introducción a vagrant
Una introducción a vagrantUna introducción a vagrant
Una introducción a vagrantLaura Gimenoide
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programaciónMario Garcia-Valdez
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHPAlicantePHP
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core osDavid Luque Quintana
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoRestorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 

Tendances (20)

Vagrant
VagrantVagrant
Vagrant
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Dev ops infraestructura agil con open source
Dev ops   infraestructura agil con open sourceDev ops   infraestructura agil con open source
Dev ops infraestructura agil con open source
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...
 
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
Exprime al máximo la capacidad de tus servidores gracias a la virtualización ...
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Una introducción a vagrant
Una introducción a vagrantUna introducción a vagrant
Una introducción a vagrant
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHP
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 

Similaire à Introducción a Vagrant

La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
Migración VDP 6.0 a VDP 6.1.1
Migración VDP 6.0 a VDP 6.1.1Migración VDP 6.0 a VDP 6.1.1
Migración VDP 6.0 a VDP 6.1.1RaGaZoMe
 
Frontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsFrontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsDavid Ballén
 
Vagrant sobre Debian: Primeros Pasos
Vagrant sobre Debian: Primeros PasosVagrant sobre Debian: Primeros Pasos
Vagrant sobre Debian: Primeros PasosWalter Vargas
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con MavenEudris Cabrera
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteKuboosoft
 
Guia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosGuia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosPedro Alcaraz Díaz
 
Manual basico wifislax3
Manual basico wifislax3Manual basico wifislax3
Manual basico wifislax3alfredodiaz42
 
Manual basico wifislax3
Manual basico wifislax3Manual basico wifislax3
Manual basico wifislax3tom1260
 
Papelera Software de la recuperación
Papelera Software de la recuperación   Papelera Software de la recuperación
Papelera Software de la recuperación salvinoalba
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonMario García
 
instalacion de windows 7 y vista
 instalacion de windows 7 y vista  instalacion de windows 7 y vista
instalacion de windows 7 y vista amaya-021912
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
Tutorial filmora 64 bits-jasq
Tutorial filmora 64 bits-jasqTutorial filmora 64 bits-jasq
Tutorial filmora 64 bits-jasqjoansullca
 
Desarrollo Móvil Multiplataforma
Desarrollo Móvil MultiplataformaDesarrollo Móvil Multiplataforma
Desarrollo Móvil MultiplataformaAbraham Barrera
 
Abraham Barrera - dev-cross-mobile
Abraham Barrera - dev-cross-mobileAbraham Barrera - dev-cross-mobile
Abraham Barrera - dev-cross-mobileStarTech Conference
 

Similaire à Introducción a Vagrant (20)

La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Tutorial
TutorialTutorial
Tutorial
 
Migración VDP 6.0 a VDP 6.1.1
Migración VDP 6.0 a VDP 6.1.1Migración VDP 6.0 a VDP 6.1.1
Migración VDP 6.0 a VDP 6.1.1
 
Frontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsFrontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para Frontends
 
Vagrant sobre Debian: Primeros Pasos
Vagrant sobre Debian: Primeros PasosVagrant sobre Debian: Primeros Pasos
Vagrant sobre Debian: Primeros Pasos
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamenteCrea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
Crea tus instaladores para linux (fedora, ubuntu, etc) sencillamente
 
Guia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosGuia instalacion y configuracion nagios
Guia instalacion y configuracion nagios
 
Manual basico wifislax3
Manual basico wifislax3Manual basico wifislax3
Manual basico wifislax3
 
Manual basico wifislax3
Manual basico wifislax3Manual basico wifislax3
Manual basico wifislax3
 
Introducción a Ansible
Introducción a AnsibleIntroducción a Ansible
Introducción a Ansible
 
Papelera Software de la recuperación
Papelera Software de la recuperación   Papelera Software de la recuperación
Papelera Software de la recuperación
 
Greach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con GriffonGreach 2011 : Creando Plugins Con Griffon
Greach 2011 : Creando Plugins Con Griffon
 
instalacion de windows 7 y vista
 instalacion de windows 7 y vista  instalacion de windows 7 y vista
instalacion de windows 7 y vista
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Tutorial filmora 64 bits-jasq
Tutorial filmora 64 bits-jasqTutorial filmora 64 bits-jasq
Tutorial filmora 64 bits-jasq
 
Desarrollo Móvil Multiplataforma
Desarrollo Móvil MultiplataformaDesarrollo Móvil Multiplataforma
Desarrollo Móvil Multiplataforma
 
Abraham Barrera - dev-cross-mobile
Abraham Barrera - dev-cross-mobileAbraham Barrera - dev-cross-mobile
Abraham Barrera - dev-cross-mobile
 

Dernier

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Dernier (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Introducción a Vagrant

  • 1. D e v e l o p m e n t e n v i r o n m e n t s m a d e e a s y
  • 3.
  • 5. Discourse ‣ Una nueva plataforma de discución
  • 6. Discourse ‣ Una nueva plataforma de discución ‣ Gratis, Libre y Simple
  • 7. Discourse ‣ Una nueva plataforma de discución ‣ Gratis, Libre y Simple ‣ Creado por Jeff Atwood (@codinghorror)
  • 8. Discourse ‣ Una nueva plataforma de discución ‣ Gratis, Libre y Simple ‣ Creado por Jeff Atwood (@codinghorror) ‣ Creador de StackOverflow
  • 9. Discourse ‣ Una nueva plataforma de discución ‣ Gratis, Libre y Simple ‣ Creado por Jeff Atwood (@codinghorror) ‣ Creador de StackOverflow ‣ Blog http://www.codinghorror.com/blog/
  • 11. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads
  • 12. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox
  • 13. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant
  • 14.
  • 17.
  • 19. ‣ Es una forma de administrar Máquinas Virtules (MV) Que es Vagrant?
  • 20. ‣ Es una forma de administrar Máquinas Virtules (MV) ‣ Puede correr diferentes Sistemas Operativos Que es Vagrant?
  • 21. ‣ Es una forma de administrar Máquinas Virtules (MV) ‣ Puede correr diferentes Sistemas Operativos ‣ Las MV se pueden definir en código Que es Vagrant?
  • 22. ‣ Es una forma de administrar Máquinas Virtules (MV) ‣ Puede correr diferentes Sistemas Operativos ‣ Las MV se pueden definir en código ‣ Vagrant utiliza VirtualBox para construir MV que son configurables, ligereas y portables. Que es Vagrant?
  • 24. Por que Vagrant? ‣ Problemas al crear un ambiente de desarollo
  • 25. Por que Vagrant? ‣ Problemas al crear un ambiente de desarollo ‣ Toma mucho tiempo y por lo general necesitas soporte.
  • 26. Por que Vagrant? ‣ Problemas al crear un ambiente de desarollo ‣ Toma mucho tiempo y por lo general necesitas soporte. ‣ Requieres de documentación que la mayoría de las veces esta desactualizada.
  • 27. Por que Vagrant? ‣ Problemas al crear un ambiente de desarollo ‣ Toma mucho tiempo y por lo general necesitas soporte. ‣ Requieres de documentación que la mayoría de las veces esta desactualizada. ‣ Si cometes un error en tú ambiente, te puede tomar días repararlo.
  • 28. Por que Vagrant? ‣ Problemas al crear un ambiente de desarollo ‣ Toma mucho tiempo y por lo general necesitas soporte. ‣ Requieres de documentación que la mayoría de las veces esta desactualizada. ‣ Si cometes un error en tú ambiente, te puede tomar días repararlo. ‣ Puede producir resultados inesperados.
  • 30. ‣ Tu entorno de desarollo y producción no son los mismos! Por que Vagrant?
  • 31. ‣ Tu entorno de desarollo y producción no son los mismos! ‣ Diferentes Sistemas Operativos. Por que Vagrant?
  • 32. ‣ Tu entorno de desarollo y producción no son los mismos! ‣ Diferentes Sistemas Operativos. ‣ Direrentes versiones de PHP/Phyton/Ruby. Por que Vagrant?
  • 33. ‣ Tu entorno de desarollo y producción no son los mismos! ‣ Diferentes Sistemas Operativos. ‣ Direrentes versiones de PHP/Phyton/Ruby. ‣ No coincíden las versiones de las librerías. Por que Vagrant?
  • 34. ‣ Tu entorno de desarollo y producción no son los mismos! ‣ Diferentes Sistemas Operativos. ‣ Direrentes versiones de PHP/Phyton/Ruby. ‣ No coincíden las versiones de las librerías. ‣ Diferentes archivos de configuración. Por que Vagrant?
  • 36. ‣ No tienes idea de porque el mismo código si funciona en tu máquina. Por que Vagrant?
  • 37. ‣ No tienes idea de porque el mismo código si funciona en tu máquina. ‣ funcionaba en mi máquina!!!!!. Por que Vagrant?
  • 38. ‣ No tienes idea de porque el mismo código si funciona en tu máquina. ‣ funcionaba en mi máquina!!!!!. Por que Vagrant?
  • 39.
  • 41. ‣ Con Vagrant puedes hacer el setup de tú ambiente mucho mas rápido. Por que Vagrant?
  • 42. ‣ Con Vagrant puedes hacer el setup de tú ambiente mucho mas rápido. ‣ Maximiza la compatibilidad entre el ambiente de producción y desarrollo. Por que Vagrant?
  • 43. ‣ Con Vagrant puedes hacer el setup de tú ambiente mucho mas rápido. ‣ Maximiza la compatibilidad entre el ambiente de producción y desarrollo. ‣ No mas “En mi maquina si funciona!”. Por que Vagrant?
  • 44.
  • 46. Introducción ‣ Instalamos los siguientes paquetes.
  • 47. Introducción ‣ Instalamos los siguientes paquetes. ‣ VirtualBox (https://www.virtualbox.org/wiki/ Downloads).
  • 48. Introducción ‣ Instalamos los siguientes paquetes. ‣ VirtualBox (https://www.virtualbox.org/wiki/ Downloads). ‣ Vagrant (http://downloads.vagrantup.com/).
  • 50. Introducción Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
  • 51. $ vagrant box add precise32 http://files.vagrantup.com/precise32.box Introducción Instalamos Ubuntu 12.04 LTS (Precise Pangolin)
  • 52. $ vagrant box add precise32 http://files.vagrantup.com/precise32.box Introducción Instalamos Ubuntu 12.04 LTS (Precise Pangolin) Inicializamos nuestro Workspace.
  • 53. $ vagrant box add precise32 http://files.vagrantup.com/precise32.box $ cd workspace $ vagrant init precise32 Introducción Instalamos Ubuntu 12.04 LTS (Precise Pangolin) Inicializamos nuestro Workspace.
  • 54. Vagrantfile A Ruby DLS (Domiain Specific Language) # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "precise32" end
  • 56. Run Baby Run!! Para levantar nuestra MV
  • 57. $ vagrant up Run Baby Run!! Para levantar nuestra MV
  • 58. $ vagrant up Run Baby Run!! Para levantar nuestra MV Para entrar a la MV
  • 59. $ vagrant up Run Baby Run!! Para levantar nuestra MV $ vagrant shh Para entrar a la MV
  • 60. $ vagrant up Run Baby Run!! Para levantar nuestra MV $ vagrant shh Para entrar a la MV Para cerrar la MV
  • 61. $ vagrant up Run Baby Run!! Para levantar nuestra MV $ vagrant shh Para entrar a la MV $ vagrant halt Para cerrar la MV
  • 62. $ vagrant up Run Baby Run!! Para levantar nuestra MV $ vagrant shh Para entrar a la MV $ vagrant halt Para cerrar la MV Para eliminar la MV
  • 63. $ vagrant up Run Baby Run!! Para levantar nuestra MV $ vagrant shh Para entrar a la MV $ vagrant halt Para cerrar la MV $ vagrant destroy Para eliminar la MV
  • 65. Vagrant Defaults ‣ Default username “vagrant”
  • 66. Vagrant Defaults ‣ Default username “vagrant” ‣ Default password “vagrant”
  • 67. Vagrant Defaults ‣ Default username “vagrant” ‣ Default password “vagrant” ‣ /vagrant es tú workspace en la MV (este folder es compartido)
  • 69. Que mas? ‣ Podemos instalar todas nuestras depencias una sola vez.
  • 70. Que mas? ‣ Podemos instalar todas nuestras depencias una sola vez. ‣ Podemos hacer nuestra MV igual a nuestro ambiente de producción.
  • 71. Que mas? ‣ Podemos instalar todas nuestras depencias una sola vez. ‣ Podemos hacer nuestra MV igual a nuestro ambiente de producción. ‣ Podemos hacer un “Base Box” y compartirla entre nosotros.
  • 72. Que mas? ‣ Podemos instalar todas nuestras depencias una sola vez. ‣ Podemos hacer nuestra MV igual a nuestro ambiente de producción. ‣ Podemos hacer un “Base Box” y compartirla entre nosotros. ‣ Cuanto tiempo nos podemos ahorrar??
  • 75. $ sudo apt-get update $ sudo apt-get install git-core curl build-essential openssl libssl-dev Depenencias Usando APT (Advanced Packaging Tool)
  • 79. $ vagrant package Package Creamos nuestro box Esto genera un package.box que podemos usar de la siguiente manera:
  • 80. $ vagrant package Package Creamos nuestro box $ vagrant box add base package.box Esto genera un package.box que podemos usar de la siguiente manera:
  • 82. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads
  • 83. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox
  • 84. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant
  • 85. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant ‣ Open a terminal
  • 86. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant ‣ Open a terminal ‣ Clone the project: git clone https://github.com/ discourse/discourse.git
  • 87. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant ‣ Open a terminal ‣ Clone the project: git clone https://github.com/ discourse/discourse.git ‣ Enter the project directory: cd discourse
  • 88. Discourse Install Guide ‣ Install Git: http://git-scm.com/downloads ‣ Install VirtualBox ‣ Install Vagrant ‣ Open a terminal ‣ Clone the project: git clone https://github.com/ discourse/discourse.git ‣ Enter the project directory: cd discourse ‣ vagrant up
  • 89.
  • 92. Provisioners ‣ Lanzar una MV en blanco no es muy útil
  • 93. Provisioners ‣ Lanzar una MV en blanco no es muy útil ‣ Permiten hacer el setup de nuesta MV mucho mas fácil
  • 94. Provisioners ‣ Lanzar una MV en blanco no es muy útil ‣ Permiten hacer el setup de nuesta MV mucho mas fácil ‣ Opcionales, si quieres instalar el software a manualmente es desición propia.
  • 95. Provisioners ‣ Lanzar una MV en blanco no es muy útil ‣ Permiten hacer el setup de nuesta MV mucho mas fácil ‣ Opcionales, si quieres instalar el software a manualmente es desición propia. ‣ Puedes crear tú propio provisioner
  • 96. Provisioners ‣ Lanzar una MV en blanco no es muy útil ‣ Permiten hacer el setup de nuesta MV mucho mas fácil ‣ Opcionales, si quieres instalar el software a manualmente es desición propia. ‣ Puedes crear tú propio provisioner ‣ solo si le sabes al ruby XD
  • 97.
  • 98. # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "precise32" # Bootstrap vm from external shell script config.vm.provision :shell, :path => "bootstrap.sh" end http://docs.vagrantup.com/v2/provisioning/shell.html Shell #!/bin/bash echo I am provisioning... date > /etc/vagrant_provisioned_at bootstrap.sh
  • 99.
  • 102. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt)
  • 103. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box
  • 104. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box ‣ Actualizamos nuestro Vagrantfile [2]
  • 105. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box ‣ Actualizamos nuestro Vagrantfile [2] ‣ Colocamos nuestro minion config dentro de salt/minion [1]
  • 106. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box ‣ Actualizamos nuestro Vagrantfile [2] ‣ Colocamos nuestro minion config dentro de salt/minion [1] ‣ Hacemos un vagrant up.
  • 107. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box ‣ Actualizamos nuestro Vagrantfile [2] ‣ Colocamos nuestro minion config dentro de salt/minion [1] ‣ Hacemos un vagrant up. ‣ [1] Asegúrate de que el minion config establezca la propiedad file_client: local para la configuración masterless
  • 108. Masterless ‣ Instalamos Vagrant ‣ Instalamos Salty Vagrant (vagrant plugin install vagrant-salt) ‣ Agregamos el box Ubuntu 12.04: vagrant box add precise64 http://files.vagrantup.com/precise64.box ‣ Actualizamos nuestro Vagrantfile [2] ‣ Colocamos nuestro minion config dentro de salt/minion [1] ‣ Hacemos un vagrant up. ‣ [1] Asegúrate de que el minion config establezca la propiedad file_client: local para la configuración masterless ‣ [2] No olvides crear un ”shared folder” para la configuración de salt
  • 109. # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "precise32" # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. config.vm.network :forwarded_port, guest: 3200, host: 3200 config.vm.synced_folder "srv/", "/srv/" config.vm.provision :salt do |salt| ## Minion config is set to ``file_client: local`` for masterless salt.minion_config = "srv/minion" salt.run_highstate = true end end Configuración
  • 111.
  • 113.
  • 114. DevOps
  • 115.
  • 116.
  • 117.
  • 119. Links ‣ vagrant: vagrantup.com ‣ boxes: vagrantbox.es ‣ docs: docs.vagrantup.com/v2 ‣ salt: saltstack.com ‣ discourse: discourse.org ‣ try: try.discourse.org ‣ github: github.com/discourse/discourse
  • 120. Contacto ‣ email: ruranga@grupow.com ‣ twitter: @rauluranga ‣ facebook: facebook.com/uranga.raul ‣ google: plus.google.com ‣ github: github.com/rauluranga ‣ blog: labs.grupow.com/