Desmistificando um Ambiente de
Desenvolvimento WEB com
Vagrant
Luis Costa
fb.com/luishscosta
luishsco@gmail.com
github.com/luishscosta
Quem sou eu?
Formado em Sistemas de Informação
Há 3 anos trabalho com Infra Estrutura
Sys Admin na Tray
Administramos pouco mais de 300 servidores
Quem é Você!?
Ambiente de Desenvolvimento
WEB?
S.O
APACHE
PHP
MYSQL
OMG!!!!
WTF!!??
DON’T WORRY!!
O Vagrant....
É uma ferramenta
Criado em 2010 por Mitchell Hashimoto
Projeto OpenSource
Escrito em Ruby
Multi-Plataforma
Em 2012 fundou a Hashicorp
https://github.com/mitchellh/vagrant
https://twitter.com/mitchellh
Por que utilizar o Vagrant?
Simplifica o ambiente de desenvolvimento
Possibilita a portabilidade do ambiente
Permite a Flexibilidade
Aumenta a Produtividade
Prove a inovação
Deixa sua equipe mais livre
Ele pode ajudar cada um!!!
Developer
SysAdmin
Frontend
Isola todas dependências
A configuração é centralizada
“Na minha máquina funciona” #NOMORE
Da consistência no desenvolvimento de scripts
Possível testar novas ferramentas
Permite teste de receitas
Devolve a paz interior
Preocupação?! Só com os estilos!!
Configurou, subiu e desenvolveu o CSS
Tem independência total sobre o ambiente
Para funcionar é simples!!!
Sistema Operacional
Sistema de Virtualização
VirtualBox
Parallels
VMWare
AWS
Vagrant
https://www.vagrantup.com/downloads
Instalação do Vagrant
Windows
Seja amigo do “Next”
Linux
Gerenciador de pacote é a LEI
MacOS
Baixe o pacote e instale
BOX
Você precisa disso
TAMBÉM
A BOX
É a “Maquina” base
É uma junção de dados
Prove um padrão para o compartilhamento
Qualquer um utiliza
Adequa a qualquer plataforma
Ainda falando sobre BOX...
Você pode baixar sua pelo Google, GitHub....
Você pode baixar a sua automaticamente
Você pode fazer sua #CUIDADO
Tem box pra tudo!!
Tem um repositório só de boxes!!!
http://vagrantcloud.com
Você precisa
SABER
o que é o
VAGRANTFILE
O Vagrantfile
Um arquivo
Leva toda a identidade da sua máquina
Há só um Vagrantfile por projeto
Usa a Syntax do Ruby
Mas você não precisa saber Ruby
Você vai encontrar nele...
Configuração da máquina virtual
Memória
Rede
Processador
Hostname
Pasta sincronizada
Provisionamento
Configuração de Acesso SSH
Configuração do Vagrant
COMANDOS
OS COMANDOS
$ vagrant box {add,remove,list,repackage}
$ vagrant init
$ vagrant halt
$ vagrant up
$ vagrant destroy
$ vagrant package
$ vagrant provision
$ vagrant reload
$ vagrant list-comands
Vamos desmistificar esse negócio ai!
S.O
APACHE
PHP
MYSQL
PROVISIONAMENTO
Provi....O que?
“Pense antes de agir”
Automatiza tarefas
Esqueça a instalação
Configure em algumas linhas de código
Evite repetições, automatize!
O Vagrant suporta Provisionamento
File
Shell
Ansible
CFEngine
Chef
Docker
Salt
Puppet
PUPPET
PUPPET
Não é só uma ferramenta de provisionamento
Escrita em Ruby
Possui uma ótima documentação
Comunidade muito ativa
Possui soluções “enterprise”
Hoje tem registrado 2.696 módulos
http://puppetlabs.com/
https://forge.puppetlabs.com/
PUPPET
Não é só uma ferramenta de provisionamento
Escrita em Ruby
Possui uma ótima documentação
Comunidade muito ativa
Possui soluções “enterprise”
Hoje tem registrado 2.696 módulos
http://puppetlabs.com/
Vamos desmistificar esse negócio ai!
S.O
APACHE
PHP
MYSQL
E se não
precisasse fazer
nada disso?
PuPHPet
PuPHPet
Interface visual para automação
Trabalha com Vagrant + Puppet
É OpenSource
Clicou, Baixou, Funcionou!
Vamos desmistificar esse negócio ai!
OBRIGADO!
Luis Costa
fb.com/luishscosta
luishsco@gmail.com
github.com/luishscosta

Desmistificando um Ambiente de Desenvolvimento WEB com Vagrant