vagrant + chef cookbooks ambiente de desenvolvimento como o de produção em poucos passos
DESCRIPTION
UmaTRANSCRIPT
Ambiente de desenvolvimento como o de produção em poucos passos
@tiagobutzke
● Engenheiro de Software
● Fundador e CEO na Stoodos.com
● Amante de rock clássico
● Colecionador de LP’s
● Bebedor de café e cerveja
● “Ambientes de desenvolvimento fácil”
● A grosso modo, uma forma fácil de controlar uma VM via linha de comando
Passos para iniciar o vagrant (1)
Baixar e instalar a Virtual Boxwww.virtualbox.org/wiki/Downloads
Baixar e instalar o vagrantvagrantup.com/downloads.html
Passos para iniciar o vagrant (2)
Adicionar uma nova boxwww.vagrantbox.es
eg.: $ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
Passos para iniciar o vagrant (3)
$ vagrant init
Passos para iniciar o vagrant (4)
Configurar VagrantFile
eg.: config.vm.box = “lucid32” # a box instalamos no passo 3, lembra?
Passos para iniciar o vagrant (5)
$ vagrant up
Passos para iniciar o vagrant (6)
Passos para iniciar o vagrant (7)
Principais comandos● $ vagrant up: inicia a VM● $ vagrant suspend: salva o estado da
máquina e desliga a VM● $ vagrant ssh: Acessa a VM via SSH● $ vagrant provision: Roda novamente as
configurações de provision e inicia a VM● $ vagrant reload: Reseta a VM● $ vagrant destroy: Remove a VM
● “Automação de TI para velocidade e grandiosidade”
● A grosso modo, uma forma de automatizar a instalação e configuração do ambiente de desenvolvimento utilizando ruby
CookbookUm conjunto de regras que fala para o Chef
como ele vai instalar algo
Cookbooks
● Você pode desenvolver seus próprios cookbooks
● No Github você pode encontrar vários cookbooks prontos para serem usados
Passos para adicionar cookbooks prontos (1)
Diretórios
eg.: $ mkdir -p {cookbooks, data_bags, roles}
Passos para adicionar cookbooks prontos (2)
Configurar VagrantFile
config.vm.provision :chef_solo do |chef| chef.cookbooks_path = “cookbooks” chef.data_bags_pash = “data_bags” chef.roles_path = “roles” chef.add_role = “default”end
Passos para adicionar cookbooks prontos (3)
Init git
$ git init .
Passos para adicionar cookbooks prontos (4)
Adicionar um cookbook
eg.: $ git submodule add https://github.com/opscode-cookbooks/apt.git cookbooks/apt
Passos para adicionar cookbooks prontos (5)
Criar default rules (arquivo roles/defaylt.rb)
name “deafult”run_list( “recipe[apt]”)
Passos para adicionar cookbooks prontos (6)
Provision
Se a VM existe: $ vagrant provisionSe não: $ vagrant up
Passos para adicionar cookbooks prontos (7)
Seja feliz!
Tiago Butzke
@tiagobutzke
github.com/tiagobutzke
linkedin.com/in/tiagobutzke