Vagrant

16
Vagrant Seu ambiente de desenvolvimento “descolado”

Transcript of Vagrant

Page 1: Vagrant

VagrantSeu ambiente de desenvolvimento

“descolado”

Page 2: Vagrant

Quem?!

•Fernando “Fernandão” Cézar• Quase Analista de Sistemas pela UFMS

• Trabalha com TI a 10 anos

• Sócio-Desenvolvedor da Gendoc

• Responsável pela parte web dos produtos da Gendoc

• Cansei de perder tempo configurando ambiente.

Page 3: Vagrant

Agenda

• Visão Geral do Problema

• Vagrant

• O que é?

• Porque utilizar?

• “Hello World” Vagrant

• VagrantFile

• Boxes

• Provisioners

• Dicas Rápidas

• Dúvidas?

Page 4: Vagrant

Num mundo ideal seria assim:$git clone https://git.gendoc.com.br/Projeto$RUN

O QuickTime™ e umGIF descompressor

são necessários para ver esta imagem.

Os problemas!

Codar!

Page 5: Vagrant

$git clone https://git.gendoc.com.br/Projeto

...Lê a documentação (Quando existe)

$mkdir, cp, install, vim...

...pergunta para o chefe

$./projeto/.pasta_oculta/bin/magia_negra --fix_rebimboca --fix_esner --qualquer_outro_parametro_nao_documentado=CONSTANTE_MAGICA_42

...P#t$QueOPariuFilhoDaP*tDoC$r#lh*QueNaoFunciona

...1 semana depois

$RUNO QuickTime™ e umGIF descompressor

são necessários para ver esta imagem.

Os problemas!Como Realmente acontece:

E, finalmente, Codar!

Page 6: Vagrant

E não funciona!

Seu ambiente de trabalho é diferente do Servidor!

‣S.O. Diferente...

‣Versão Diferente do Python/PHP/Rails...

‣Versões diferentes dos Pacotes...

Mas na minha maquina Funciona?!

Os problemas!

O QuickTime™ e umGIF descompressor

são necessários para ver esta imagem.

Publica a funcionalidade em produção:

Page 7: Vagrant

Vagrant significa:

•Indivíduo sem Residencia fixa ou trabalho regular que vaga de lugar em lugar e Vive de esmolas.

•Mendigo

•Programador?!

Vagrant

Page 8: Vagrant

•Por Linha de comando (Não tenha medo do Terminal)

•Roda diferentes sistemas operacionais

•Define maquinas virtuais por código (Ruby)

•Criado por Mitch Hashimoto and John Bender(Primeiro commit Jan/2010)

•Integra com VirtualBox nativamente e com VMWare Fusion e AWS através de Plugins

•Aceita Plugins

E o que é o Vagrant?Vagrant é uma ferramenta de gerenciamento de Máquinas

Virtuais

Page 9: Vagrant

•Não gasta tempo do desenvolvedor configurando ambiente de desenvolvimento, a box com o projeto já vem pronta!

•Maximiza a paridade entre o ambiente de Desenvolvimento e de Produção

•Acaba com o “Mas na minha máquina funciona”

Porque Vagrant?

Page 10: Vagrant

O QuickTime™ e umGIF descompressor

são necessários para ver esta imagem.

Page 11: Vagrant

•Descreve a VM através de códigos

•Pode existir um VagrantFile por Projeto e nele podem existir mutiplas VM’s

•Pode ser versionado

VagrantFile

Page 12: Vagrant

•VM’s encapsuladas junto com um VagrantFile e um Json com informações do Provider (VirtualBox, Vmware, AWS, etc.)

•http://www.vagrantbox.es/

Boxes

Page 13: Vagrant

•Centralização das Configurações, Instalações de bibliotecas e pacotes, Controle das versões dessas bibliotecas e pacotes instalados.

•Pode ser a garantia de que o ambiente local de todos os desenvolvedores estão iguais entre eles e com o servidor de produção

•Pode ser feita através do Puppet, do Chef, do Ansible, ou até mesmo através de scripts personalizados e versionados junto com o VagrantFile

Provisioners

Page 14: Vagrant

•O Vagrant não é mais uma Gem do RubyGems

•Instale o Vagrant a partir do download do Site (http://vagrantup.com)

•Você precisa do Fornecedor das vms instalado (VirtualBox, VMWare, AWS, etc.)

•Se você já está com a versão 1.0.x instalada, a migração para o 1.1+ tem um truque, é necessário inserir o Metadata.json nas vm’s existentes. Aqui está a solução: http://www.wizonesolutions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/

•Atualizar o VirtualBox Guest Adittions por ser complicado, para isso existe um plugin vagrant-vbguest, mas ainda não é compativel com o Vagrant 1.1+.

•Alterar o tamanho da memória ram da VM: config.vm.customize ["modifyvm", :id, "--memory", 1024]

Dicas Rápidas

Page 15: Vagrant

Duvidas?

O QuickTime™ e umGIF descompressor

são necessários para ver esta imagem.

Page 16: Vagrant

[email protected]

•https://twitter.com/focezar - @focezar

•https://github.com/focezar

•https://github.com/gendoc

•http://www.slideshare.net/focezar

•Procure por focezar nas Redes Sociais, menos no Facebook!

Obrigado!