27
Vagrant Uma ferramenta realmente útil e versátil [email protected] Wanderlei Silva do Carmo

Vagrant - Uma Ferramenta Realmente Útil e Versátil

Embed Size (px)

DESCRIPTION

Como usar o Vagrant para criar um ambiente de desenvolvimento em um servidor Web em GNU/Linux.

Citation preview

Page 1: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Vagrant

Uma ferramenta realmente útil e versátil

[email protected] Silva do Carmo

Page 2: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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

Page 3: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Objetivo

● Apresentar o Vagrant como ferramenta auxiliar em ambientes de desenvolvimento;

Page 4: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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?

Page 5: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Eis que surge

Vagrant

Page 6: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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

Page 7: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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);

Page 8: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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...

Page 9: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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/

Page 10: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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:\projetos\projeto1\.

– Abra um prompt de comando de preferencia como administrador e entre na pasta criada: cd c:\projetos\projetos1;

– 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

Page 11: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 12: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Baixando e instalando a vbox

Criando o diretório de trabalho: neste caso em d:\projetos\precise32

Page 13: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 14: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 15: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Iniciando a máquna virtual da vbox

Vagrant box add hashicorp/precise32Pode demorar um pouco dependendo de sua conexão com a Internet.

Vagrant up → inicia a máquina virtual...

Page 16: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 17: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Acessando a box...

Clique em sim... Isso vai gerar uma chave criptográfica.

Usuário: vagrantSenha: vagrant.

Page 18: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 19: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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...

Page 20: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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-densenvolvimento-ubuntu-14-04

http://www.informaticanaweb.com/servidor-web-lamp-ubuntu-13-04/

http://www.vivaolinux.com.br/dica/Instalacao-do-LAMP-no-Ubuntu/

Page 21: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Acessando o ambiente pelo navegador

Page 22: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Desligando a máquina virtual

vagrant halt

Ou pelo próprio Linux:

sudo shutdown -h now

ou simplesmente sudo halt.

Page 23: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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.

Page 24: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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”

Page 25: Vagrant - Uma Ferramenta Realmente Útil e Versátil

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

Page 26: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Referências

● http://docs.vagrantup.com/v2/getting-started/boxes.html

Page 27: Vagrant - Uma Ferramenta Realmente Útil e Versátil

Obrigado!