conhecendo o vagrant

Post on 07-Jun-2015

259 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

A qualidade de sua aplicação está relacionada também com o ambiente onde ela está implantada. Devemos tratar nossas configurações da mesma forma de nosso código fonte. Vagrant é uma ferramenta para construir e distribuir ambientes de desenvolvimento de forma simples. Fazendo uso de ferramentas de provisionamento, é possível versionar seu ambiente, simular o ambiente de produções e permitir que todo o time trabalhe com o ambiente de desenvolvimento identico.

TRANSCRIPT

CONHECENDO

VAGRANT

@leandrosnunes

Leandro Nunes http://leandronunes.com

O QUE É NECESSÁRIO PARA INICIAR UM PROJETO?

TODOS FAZEM INSTALAÇÕES LOCAIS

FERRAMENTA PARA CONSTRUIR E DISTRIBUIR AMBIENTES DE FORMA SIMPLES

VAGRANT

Mitchell Hashimoto @mitchellh

•  Inicio em 2010 •  Desenvolvido em Ruby •  Release 1.6.5 •  HashiCorp 2012

O QUE É PRECISO PARA UTILIZAR O VAGRANT?

MULTI-PLATAFORMA

http://www.vagrantup.com/downloads

PROVIDER Gerenciador de Máquinas Virtuais

PROVIDER

OU OU

DEFAULT OU

OU

Fonte: http://www.vcritical.com/

GUEST

HOST

$ vagrant init

VagrantFile

VAGRANTFILE_API_VERSION = "2” Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

config.vm.box = "base”end  

BOX

REPRESENTA UM SISTEMA OPERACIONAL INSTALADO PARA UM PROVIDER ESPECÍFICO.

BOX BASE vagrantbox.es

vagrantcloud.com

VAGRANT CLOUD

$ vagrant init hashicorp/precise64

VAGRANTFILE_API_VERSION = "2” Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "hashicorp/precise64”end  

VagrantFile

$ vagrant up

VM RODANDO NO VIRTUALBOX

$ vagrant ssh

$ vagrant halt

$ vagrant init $ vagrant up $ vagrant ssh$ vagrant halt

$ vagrant up

$ vagrant ssh

$ sudo apt-get install postgresql

$ sudo apt-get install nginx

$ sudo apt-get install php

$ sudo apt-get uninstall php

$ sudo apt-get install ruby

$ vagrant destroy

$ vagrant up

COMO TESTAR NOVAS FERRAMENTAS?

VAGRANT PARA TESTES DE SCRIPT DE CONFIGURAÇÃO

$ vagrant package

MEU IDE PREFERIDO SÓ FUNCIONA NO WINDOWS!

AS MODIFICAÇÕES SÃO REFLETIDAS EM TEMPO REAL ENTRE AS MAQUINAS HOST E GUEST

SYNCED FOLDERS

VagrantFile

config.vm.synced_folder ".", "/vagrant", type: "nfs"  

COMO ACESSAR A APLICAÇÃO?

UMA REDE NAT É CRIADA POR DEFAULT. A REDE PRIVADA PERMITE ACESSO DE OUTROS DISPOSITIVOS NA MESMA REDE.

NETWORK

VagrantFile

config.vm.network :private_network, ip: "192.168.40.10”config.vm.network :forwarded_port, guest: 3000, host: 3000config.vm.network :forwarded_port, guest: 8982, host: 8982config.vm.network :forwarded_port, guest: 3306, host: 3306  

Acessando o Rails

AMBIENTE DE DESENVOLVIMENTO IGUAL PARA TODO TIME

TAREFAS MANUAIS NÃO PERMITEM QUALIDADE

ANSIBLE CHEF PUPPET SHELL

PROVISIONER

VagrantFile

config.vm.provision :puppet do |puppet| puppet.module_path = ["modules", "custon_modules"] puppet.manifest_file = "development.pp” puppet.options = "--verbose --debug”end  

$ vagrant provision

$ vagrant reload --provision

INCENTIVO PARA PRÁTICAS DO MOVIMENTO DEVOPS

A APLICAÇÃO PODE RODAR EM AMBIENTE SIMILAR AO DE PRODUÇÃO

ACABA COM A FRASE

“FUNCIONA NA MINHA MÁQUINA”

GERÊNCIA DE CONFIGURAÇÃO

PARTICIPAR DE PROJETOS COM PECULIARIDADES DIFERENTES

SIMPLICIDADE PARA CONTRIBUIR PARA PROJETOS OPEN SOURCE

Postgresql

Nginx Puma

Assets

Postgresql Nginx Puma

Assets

1 config.vm.define :application do |ad| 2 config.vm.network :private_network, ip: "192.168.40.10" 3 config.vm.network :forwarded_port, guest: 3000, host: 3000 4 5 ad.vm.provision :puppet do |puppet| 6 puppet.module_path = ["modules", "custom_modules"] 7 puppet.manifest_file = "development.pp" 8 puppet.options = "--verbose --debug" 9 end10 end11 12 config.vm.define :database do |ap|13 ap.vm.network :private_network, ip: "192.168.40.20"14 ap.vm.network :forwarded_port, guest: 3306, host: 330615 16 ap.vm.provision :puppet do |puppet|17 puppet.module_path = ["modules", "custom_modules"]18 puppet.manifest_file = "production.pp"19 puppet.options = "--verbose --debug"20 end21 end  

FUNCIONALIDADES EXTRAS, COMO SUPORTE A OUTROS PROVIDERS

PLUGIN

$ vagrant install plugin vagrant-vbguest

$ vagrant install vagrant-librarian-puppet

VAGRANT OPEN SOURCE

Github: https://github.com/mitchellh/vagrant IRC: #vagrant Google Groups: vagrant-up

VAGRANT DOCS

http://docs.vagrantup.com/v2/

?

top related