SlideShare uma empresa Scribd logo
Vagrant
Uma ferramenta realmente útil e versátil
Wander.silva@gmail.com
Wanderlei Silva do Carmo
Apresentação
● Sou analista e desenvolvedor de sistemas
● Programador e instrutor nas linguagens PHP,
JAVA, PYTHON, C, C++ e bancos de dados;
● Especialista Linux
● Adepto e seguidor da filosofia do software livre;
● Profundo estudioso de metodologias de
desenvolvimento e paradigmas de
programação
Objetivo
● Apresentar o Vagrant como ferramenta auxiliar
em ambientes de desenvolvimento;
Motivação
● Quem nunca sofreu com configuração de ambientes de desenvolvimento e
produção ?;
● Quantos colegas programadores na plataforma MS Windows (
www.microsoft.com.br) precisam instalar XAMP, WAMP e tantos outros para
programar em PHP ?
● Quantos de nós precisamos testar nossos projetos em diversas plataformas
e enfrentamos inúmeros problemas, que só nós sabemos quais são?
● Quantas vezes precisamos alterar configurações de testes e quando
precisamos usá-los em produção, o ambiente foi tão modificado que tudo
“quebra” e temos um retrabalho enorme para colocarmos tudo pra
funcionar novamente?
● Será que conseguiríamos “subir” um novo ambiente de desenvolvimento
em menos de 15 minutos?
Eis que surge
Vagrant
Requisitos
● Baixar e instalar o VirtualBox na última versão disponível
para sua plataforma, juntamente com o seu
ExtensionPack (Window, Mac ou Linux);
– http://www.oracle.com/technetwork/pt/server-storage/virtualbox/downloads/index.html
● Baixar e instalar o Vagrant para sua plataforma de
desenvolvimento;
– https://www.vagrantup.com/
● No caso de uma instalação em MS Windows, baixe
também o putty, necessário para o acessar a máquina
virtual
– http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Observações
● Neste tutorial não vou discorrer como instalar os requisitos
mencionados no slide anterior por não ser meu foco neste momento, já
que depende de sua plataforma de desenvolvimento. Mas, facilmente
pode ser encontrado em outros tutoriais estes procedimentos, inclusive
no próprio site de seus respectivos fornecedores;
● Outro detalhe importante é que, apesar de Vagrant dar suporte para
outros providers vou me ater apenas ao Virtualbox por ser totalmente
gratuito e atender muito bem as expectativas para todos os testes que
fiz, porém, fiquem livre para usar qualquer outro provider, bastando
apenas informar isso durante a criação da máquinas virtuais;
● Providers são as plataformas de virtualização usadas pelo Vagrant que
pode ser VirtualBox (padrão), VMWare(uma outra excelente opção) e o
Hyper-V (não gostei – opnião minha);
O que o Vagrant faz?
● O Vagrant é uma ferramente que abstrai toda a complexidade de criação e gerenciamento de
máquinas virtuais;
● Apesar de usar providers, não será necessário usar suas respectivas interfaces com o usuário;
Vagrant vai fazer tudo de forma bem mais simples e confortável;
● Outro detalhe é que você pode ter inúmeros projetos e cada um com um ambiente diferente
instalado, podendo inclusive ter ambientes totalmente isolados que ajuda muito em diversos
cenários;
● Vamos supor um cenário que seja necessário um servidor WEB, um servidor FTP, um servidor
MySQL, etc... Você pode instalar ambientes com suas devidas boxes;
● Outro recurso interessante, uma vez consolidado seu ambiente, você terá uma box totalmente
customizada que poderá ser “bacapeada” e totalmente pronta. Por exemplo, chega um novo
programador em sua equipe: a única coisa que precisa é passar para ele o ambiente em um
diretório e apenas executar a máquina virtual contida no box... que facilidade! Tudo vai estar lá,
testado e funcional... em menos de 15 minutos o novo programador estará trabalhando em seus
respectivos projetos.
● Eu particularmente, penei durante anos, pois como trabalho em centros de treinamento e
precisava usar várias distros Linux e era um verdadeiro “pandemonho” para tê-los plenamente
funcionais... e agora com Vagrant, não quero outra vida. Tanto faz, Windows, Linux ou Mac, tudo
funciona redondinho...
Onde baixar boxes prontas para uso
● Neste endereço você pode baixar boxes
prontinhas para uso e você pode utilizá-las e
prepará-las conforme suas necessidades.
● Há boxes com configurações adequadas para
diversos fins.
● Links:
– http://www.vagrantbox.es/
Configurando no Windows
● Bom, grande parte de desenvolvedores usam o
Windows como ambiente de desenvolvimento,
então vamos lá:
– Vamos atender os requisitos mencionados, ou seja,
baixar o VirtualBox e o Vagrant.
● Uma vez atendidos os requisitos:
– Crie uma pasta em seu ambiente que será o seu diretório de trabalho,
por exemplo C:projetosprojeto1.
– Abra um prompt de comando de preferencia como administrador e entre
na pasta criada: cd c:projetosprojetos1;
– Digite o comando: vagrant init hashicorp/precise32 - -provider
virtualbox, no caso vou instalar hashicorp/precise32. Este nome pode
ser um de sua escolha.
– vagrant up hashicorp/precise32 --provider virtualbox
Uma pequena parte da lista...
Para instalar:
vagrant box add {title} {url}
vagrant init {title}
vagrant up
Onde {title} é o nome que você vai dar a sua box e {url} é endereço de onde baixar ou o
caminho do diretório para onde você fez download.
Baixando e instalando a vbox
Criando o diretório de trabalho: neste caso em d:projetosprecise32
Configurando ...
● Vamos agora digitar um comando que criará um
arquivo de manifesto, que na verdade é um arquivo de
configuração inicial da nova máquina virtual.
Geralmente este arquivo criado tem o nome de
Vagrantfile.
Configuração básica do Vagrantfile
Os comentários originais do
arquivo de configuração foram
retirados para melhor
visualização das diretivas que
vamos usar mas outras
importantes diretivas existem e
quando você melhorar seu
conhecimento sobre a ferramenta
com certeza vai saber como usá-
las...
Por ora, vamos usar conforme
este exemplo.
Estamos configurando uma box que baixará do repositório hashicorp/precise32 com
mapeamento de porta 8080 local para 80 da máquina virtual e usará o compartilhamento de rede
em bridge, compartilhando o diretório do projeto onde ficarão armazenados e espelhados para o
diretório /var/www da máquina virtual. Esta máquina terá 200 MB de memória e executará um
update da lista de pacotes e instalará o apache2.
Iniciando a máquna virtual da vbox
Vagrant box add hashicorp/precise32
Pode demorar um pouco dependendo de sua conexão com a Internet.
Vagrant up → inicia a máquina virtual...
Acessando a máquina virtual com o Putty.
Lembra-se da configuração na
diretiva de redirecionamento
de portas.
Um redirecionamento da porta
2222 da máquina real para a
porta 22 da box.
Então, apenas configure o
putty.exe de acordo.
Clique em open/abrir.
Acessando a box...
Clique em sim...
Isso vai gerar uma chave
criptográfica.
Usuário: vagrant
Senha: vagrant.
Utilizando a box...
Pronto, seu ambiente Linux está
pronto para uso...
Tudo que for gravado em
/var/www estará também no seu
diretório de projeto.
Atualizando a máquina virtual
No caso do Ubuntu você utiliza apt-get update
Nas distros baseadas em Redhat ou Fedora, P.ex. Centos,
use yum update..
Mas há um script posintall.sh neste caso que fará isso
automaticamente...
Instalando tudo que você precisa
Como não é nosso foco...
Segue um excelente link para servir de guia para instalar seu ambiente LAMP
para desenvolvimento.. . entre outros.
Muiiiiiiiiiiito melhor que apenas WAMP, XAMP, bla, bla, bla...
Você tem agora um ambiente poderoso de desenvolvimento com o supra-
sumo do maior representante do software livre no momento: GNU/Linux.
http://blog.wfsneto.com.br/2014/06/21/php-configurando-ambiente-de-densenvolv
imento-ubuntu-14-04
http://www.informaticanaweb.com/servidor-web-lamp-ubuntu-13-04/
http://www.vivaolinux.com.br/dica/Instalacao-do-LAMP-no-Ubuntu/
Acessando o ambiente
pelo navegador
Desligando a máquina virtual
vagrant halt
Ou pelo próprio Linux:
sudo shutdown -h now
ou simplesmente sudo halt.
Instalando no Linux ou Mac
● Como era de se esperar... sem problemas...
● Os mesmos passos, porém, sem a
necessidade de usar o putty, bastando usar o
comando:
– vagrant ssh
● Todo o resto é exatamente igual exceto por
baixar os requisitos para a plataforma Linux ou
Mac.
Criando uma box customizada
● Com tudo instalado devidamente em seu ambiente de
desenvolvimento em sua box você agora pode agora exportá-la e
sempre estará disponível.
● Para criar a box customizada apenas digite:
– vagrant package
● O mais legal é que se precisar de instalar em uma outra máquina é
só pegar esta box customizada copiar para a máquina de destino e
usar o comando:
vagrant box add “nome_box” “url de sua box”
E muito mais...
● Dá pra fazer muito mais com Vagrant
Veja em:
● http://www.erikaheidi.com/pt_br/blog/vagrant-101-
montando-seu-ambiente-de-desenvolvimento-portatil
Referências
● http://docs.vagrantup.com/v2/getting-
started/boxes.html
Obrigado!

Mais conteúdo relacionado

Mais procurados

Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
Leandro Silva
 
Como usar o Virtualbox
Como usar o VirtualboxComo usar o Virtualbox
Como usar o Virtualbox
Mario Pego
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
Pedro Fernandes Vieira
 
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Delermando Santos Miranda
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
André Agostinho
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
Jose Augusto Carvalho
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
Jose Augusto Carvalho
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
Marcos Antônio de Souza Silva
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
Jose Augusto Carvalho
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
Marcos Antônio de Souza Silva
 
Docker
DockerDocker
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando LinuxTutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Luiz Francisco Bozo
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Tiago Hillebrandt
 
Como usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passoComo usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passo
Décio Araújo
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
Gustavo Pereira
 
Gwt
GwtGwt
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
Henrique Limas
 
Integração contínua - Você não tem dsculpa para não usar
Integração contínua - Você não tem dsculpa para não usarIntegração contínua - Você não tem dsculpa para não usar
Integração contínua - Você não tem dsculpa para não usar
Thiago Paes
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
SeRHmatica - Sistemas e Serviços
 

Mais procurados (20)

Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Como usar o Virtualbox
Como usar o VirtualboxComo usar o Virtualbox
Como usar o Virtualbox
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
 
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Consegi 2011: Puppet
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
 
Puppet webcast 4linux
Puppet webcast 4linuxPuppet webcast 4linux
Puppet webcast 4linux
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
Docker
DockerDocker
Docker
 
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando LinuxTutorial do shell script para criar imagens de HDs Win7 usando Linux
Tutorial do shell script para criar imagens de HDs Win7 usando Linux
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Como usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passoComo usar o virtualbox-passo a passo
Como usar o virtualbox-passo a passo
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
Gwt
GwtGwt
Gwt
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Integração contínua - Você não tem dsculpa para não usar
Integração contínua - Você não tem dsculpa para não usarIntegração contínua - Você não tem dsculpa para não usar
Integração contínua - Você não tem dsculpa para não usar
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 

Destaque

Apresentação programação de computadores
Apresentação   programação de computadoresApresentação   programação de computadores
Apresentação programação de computadores
Wanderlei Silva do Carmo
 
Programação de computadores
Programação de computadoresProgramação de computadores
Programação de computadores
Wanderlei Silva do Carmo
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
Wanderlei Silva do Carmo
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
Wanderlei Silva do Carmo
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
Wanderlei Silva do Carmo
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
Wanderlei Silva do Carmo
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
Wanderlei Silva do Carmo
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
Wanderlei Silva do Carmo
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
Wanderlei Silva do Carmo
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
Desenvolvimento IOS - Mobile
Desenvolvimento IOS - MobileDesenvolvimento IOS - Mobile
Desenvolvimento IOS - Mobile
Wanderlei Silva do Carmo
 

Destaque (11)

Apresentação programação de computadores
Apresentação   programação de computadoresApresentação   programação de computadores
Apresentação programação de computadores
 
Programação de computadores
Programação de computadoresProgramação de computadores
Programação de computadores
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Desenvolvimento IOS - Mobile
Desenvolvimento IOS - MobileDesenvolvimento IOS - Mobile
Desenvolvimento IOS - Mobile
 

Semelhante a Vagrant uma ferramenta realmente útil e versátil

Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Thiago Rodrigues
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
iMasters
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
Vinícius Krolow
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
Haste Design
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Anyssa Ferreira
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
Fernanda Martins
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
Marcelo Santos
 
Cake Php
Cake PhpCake Php
Cake Php
Laura Lopes
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
Jeff Prestes
 
Criação de um Desktop GNU/Linux para uso em laboratórios de informática
Criação de um Desktop GNU/Linux para uso em laboratórios de informáticaCriação de um Desktop GNU/Linux para uso em laboratórios de informática
Criação de um Desktop GNU/Linux para uso em laboratórios de informática
Verdanatech Soluções em TI
 
Python CGI
Python CGIPython CGI
Entrega ebook-gratis
Entrega ebook-gratisEntrega ebook-gratis
Entrega ebook-gratis
Rodrigo Mattos
 

Semelhante a Vagrant uma ferramenta realmente útil e versátil (13)

Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Cake Php
Cake PhpCake Php
Cake Php
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 
Criação de um Desktop GNU/Linux para uso em laboratórios de informática
Criação de um Desktop GNU/Linux para uso em laboratórios de informáticaCriação de um Desktop GNU/Linux para uso em laboratórios de informática
Criação de um Desktop GNU/Linux para uso em laboratórios de informática
 
Python CGI
Python CGIPython CGI
Python CGI
 
Entrega ebook-gratis
Entrega ebook-gratisEntrega ebook-gratis
Entrega ebook-gratis
 

Vagrant uma ferramenta realmente útil e versátil

  • 1. Vagrant Uma ferramenta realmente útil e versátil Wander.silva@gmail.com Wanderlei Silva do Carmo
  • 2. Apresentação ● Sou analista e desenvolvedor de sistemas ● Programador e instrutor nas linguagens PHP, JAVA, PYTHON, C, C++ e bancos de dados; ● Especialista Linux ● Adepto e seguidor da filosofia do software livre; ● Profundo estudioso de metodologias de desenvolvimento e paradigmas de programação
  • 3. Objetivo ● Apresentar o Vagrant como ferramenta auxiliar em ambientes de desenvolvimento;
  • 4. Motivação ● Quem nunca sofreu com configuração de ambientes de desenvolvimento e produção ?; ● Quantos colegas programadores na plataforma MS Windows ( www.microsoft.com.br) precisam instalar XAMP, WAMP e tantos outros para programar em PHP ? ● Quantos de nós precisamos testar nossos projetos em diversas plataformas e enfrentamos inúmeros problemas, que só nós sabemos quais são? ● Quantas vezes precisamos alterar configurações de testes e quando precisamos usá-los em produção, o ambiente foi tão modificado que tudo “quebra” e temos um retrabalho enorme para colocarmos tudo pra funcionar novamente? ● Será que conseguiríamos “subir” um novo ambiente de desenvolvimento em menos de 15 minutos?
  • 6. Requisitos ● Baixar e instalar o VirtualBox na última versão disponível para sua plataforma, juntamente com o seu ExtensionPack (Window, Mac ou Linux); – http://www.oracle.com/technetwork/pt/server-storage/virtualbox/downloads/index.html ● Baixar e instalar o Vagrant para sua plataforma de desenvolvimento; – https://www.vagrantup.com/ ● No caso de uma instalação em MS Windows, baixe também o putty, necessário para o acessar a máquina virtual – http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  • 7. Observações ● Neste tutorial não vou discorrer como instalar os requisitos mencionados no slide anterior por não ser meu foco neste momento, já que depende de sua plataforma de desenvolvimento. Mas, facilmente pode ser encontrado em outros tutoriais estes procedimentos, inclusive no próprio site de seus respectivos fornecedores; ● Outro detalhe importante é que, apesar de Vagrant dar suporte para outros providers vou me ater apenas ao Virtualbox por ser totalmente gratuito e atender muito bem as expectativas para todos os testes que fiz, porém, fiquem livre para usar qualquer outro provider, bastando apenas informar isso durante a criação da máquinas virtuais; ● Providers são as plataformas de virtualização usadas pelo Vagrant que pode ser VirtualBox (padrão), VMWare(uma outra excelente opção) e o Hyper-V (não gostei – opnião minha);
  • 8. O que o Vagrant faz? ● O Vagrant é uma ferramente que abstrai toda a complexidade de criação e gerenciamento de máquinas virtuais; ● Apesar de usar providers, não será necessário usar suas respectivas interfaces com o usuário; Vagrant vai fazer tudo de forma bem mais simples e confortável; ● Outro detalhe é que você pode ter inúmeros projetos e cada um com um ambiente diferente instalado, podendo inclusive ter ambientes totalmente isolados que ajuda muito em diversos cenários; ● Vamos supor um cenário que seja necessário um servidor WEB, um servidor FTP, um servidor MySQL, etc... Você pode instalar ambientes com suas devidas boxes; ● Outro recurso interessante, uma vez consolidado seu ambiente, você terá uma box totalmente customizada que poderá ser “bacapeada” e totalmente pronta. Por exemplo, chega um novo programador em sua equipe: a única coisa que precisa é passar para ele o ambiente em um diretório e apenas executar a máquina virtual contida no box... que facilidade! Tudo vai estar lá, testado e funcional... em menos de 15 minutos o novo programador estará trabalhando em seus respectivos projetos. ● Eu particularmente, penei durante anos, pois como trabalho em centros de treinamento e precisava usar várias distros Linux e era um verdadeiro “pandemonho” para tê-los plenamente funcionais... e agora com Vagrant, não quero outra vida. Tanto faz, Windows, Linux ou Mac, tudo funciona redondinho...
  • 9. Onde baixar boxes prontas para uso ● Neste endereço você pode baixar boxes prontinhas para uso e você pode utilizá-las e prepará-las conforme suas necessidades. ● Há boxes com configurações adequadas para diversos fins. ● Links: – http://www.vagrantbox.es/
  • 10. Configurando no Windows ● Bom, grande parte de desenvolvedores usam o Windows como ambiente de desenvolvimento, então vamos lá: – Vamos atender os requisitos mencionados, ou seja, baixar o VirtualBox e o Vagrant. ● Uma vez atendidos os requisitos: – Crie uma pasta em seu ambiente que será o seu diretório de trabalho, por exemplo C:projetosprojeto1. – Abra um prompt de comando de preferencia como administrador e entre na pasta criada: cd c:projetosprojetos1; – Digite o comando: vagrant init hashicorp/precise32 - -provider virtualbox, no caso vou instalar hashicorp/precise32. Este nome pode ser um de sua escolha. – vagrant up hashicorp/precise32 --provider virtualbox
  • 11. Uma pequena parte da lista... Para instalar: vagrant box add {title} {url} vagrant init {title} vagrant up Onde {title} é o nome que você vai dar a sua box e {url} é endereço de onde baixar ou o caminho do diretório para onde você fez download.
  • 12. Baixando e instalando a vbox Criando o diretório de trabalho: neste caso em d:projetosprecise32
  • 13. Configurando ... ● Vamos agora digitar um comando que criará um arquivo de manifesto, que na verdade é um arquivo de configuração inicial da nova máquina virtual. Geralmente este arquivo criado tem o nome de Vagrantfile.
  • 14. Configuração básica do Vagrantfile Os comentários originais do arquivo de configuração foram retirados para melhor visualização das diretivas que vamos usar mas outras importantes diretivas existem e quando você melhorar seu conhecimento sobre a ferramenta com certeza vai saber como usá- las... Por ora, vamos usar conforme este exemplo. Estamos configurando uma box que baixará do repositório hashicorp/precise32 com mapeamento de porta 8080 local para 80 da máquina virtual e usará o compartilhamento de rede em bridge, compartilhando o diretório do projeto onde ficarão armazenados e espelhados para o diretório /var/www da máquina virtual. Esta máquina terá 200 MB de memória e executará um update da lista de pacotes e instalará o apache2.
  • 15. Iniciando a máquna virtual da vbox Vagrant box add hashicorp/precise32 Pode demorar um pouco dependendo de sua conexão com a Internet. Vagrant up → inicia a máquina virtual...
  • 16. Acessando a máquina virtual com o Putty. Lembra-se da configuração na diretiva de redirecionamento de portas. Um redirecionamento da porta 2222 da máquina real para a porta 22 da box. Então, apenas configure o putty.exe de acordo. Clique em open/abrir.
  • 17. Acessando a box... Clique em sim... Isso vai gerar uma chave criptográfica. Usuário: vagrant Senha: vagrant.
  • 18. Utilizando a box... Pronto, seu ambiente Linux está pronto para uso... Tudo que for gravado em /var/www estará também no seu diretório de projeto.
  • 19. Atualizando a máquina virtual No caso do Ubuntu você utiliza apt-get update Nas distros baseadas em Redhat ou Fedora, P.ex. Centos, use yum update.. Mas há um script posintall.sh neste caso que fará isso automaticamente...
  • 20. Instalando tudo que você precisa Como não é nosso foco... Segue um excelente link para servir de guia para instalar seu ambiente LAMP para desenvolvimento.. . entre outros. Muiiiiiiiiiiito melhor que apenas WAMP, XAMP, bla, bla, bla... Você tem agora um ambiente poderoso de desenvolvimento com o supra- sumo do maior representante do software livre no momento: GNU/Linux. http://blog.wfsneto.com.br/2014/06/21/php-configurando-ambiente-de-densenvolv imento-ubuntu-14-04 http://www.informaticanaweb.com/servidor-web-lamp-ubuntu-13-04/ http://www.vivaolinux.com.br/dica/Instalacao-do-LAMP-no-Ubuntu/
  • 22. Desligando a máquina virtual vagrant halt Ou pelo próprio Linux: sudo shutdown -h now ou simplesmente sudo halt.
  • 23. Instalando no Linux ou Mac ● Como era de se esperar... sem problemas... ● Os mesmos passos, porém, sem a necessidade de usar o putty, bastando usar o comando: – vagrant ssh ● Todo o resto é exatamente igual exceto por baixar os requisitos para a plataforma Linux ou Mac.
  • 24. Criando uma box customizada ● Com tudo instalado devidamente em seu ambiente de desenvolvimento em sua box você agora pode agora exportá-la e sempre estará disponível. ● Para criar a box customizada apenas digite: – vagrant package ● O mais legal é que se precisar de instalar em uma outra máquina é só pegar esta box customizada copiar para a máquina de destino e usar o comando: vagrant box add “nome_box” “url de sua box”
  • 25. E muito mais... ● Dá pra fazer muito mais com Vagrant Veja em: ● http://www.erikaheidi.com/pt_br/blog/vagrant-101- montando-seu-ambiente-de-desenvolvimento-portatil