Top Banner
Vagrant Seu ambiente de desenvolvimento “descolado”
16

Vagrant

May 27, 2015

Download

Documents

Fernando Cezar
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!