O documento discute a importância de ambientes de desenvolvimento consistentes e replicáveis para facilitar a transição entre desenvolvimento e produção. Ele introduz o conceito DRIVE (descartável, replicável, isolado e versionado) para ambientes e ferramentas como Vagrant e Ansible para automatizar a configuração e provisionamento de ambientes. O documento também apresenta como usar Ansible de forma standalone ou em conjunto com Vagrant para criar ambientes de desenvolvimento consistentes.
8. Ferramentas de Config Mgmt
● Puppet, Chef, Ansible...
● Grande evolução nos últimos anos
● Mais acessível para desenvolvedores
● Não estão limitadas a ambientes em produção!
10. OpsFirst
● OPS antes de DEV
● Objetivo: facilitar a transição de DEV para PROD
● Trazendo os benefícios de ferramentas de configuração para a
fase inicial de desenvolvimento
● Facilita bastante o deploy na fase final do projeto
13. Ansible – visão geral
● Usa uma linguagem simples – YAML
● Bastante “developer-friendly”
● Grande quantidade de módulos built-in
● Arquitetura “agentless” - usa apenas SSH
● Usado por grandes nomes como Twitter,
Atlassian, até NASA
16. Usando Ansible com Vagrant
#Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
end
end
25. Configuração SSH
● Cenário ideal: conectar com um simples ssh meu-servidor
● Crie um usuário no servidor
● Adicione ao sudoers com NOPASSWD
● Copie a chave SSH local com ssh-copy-id
● Instruções detalhadas: bit.ly/ansible-ssh
26. Ansible standalone: comandos ad-hoc
$ ansible all -m ping
$ ansible webservers -a “php -v”
$ ansible all -i staging -a “sudo apt-get update”
ansible group [-i inventory] [-m module]