3
respostas

Duvidas de provisionamento

Fala Guilherme, muito legal o curso, parabéns.

Estou com dúvidas referente aos ambiente.

Vamos supor que tenho uma aplicação rails e tenho o ambiente de dev e de prd.

Na maquina de DEV por exemplo eu não preciso do Mysql Instalado, não preciso configurar o Nginx nem nada disso pois vou usar os meios padrão do rails.

Mas em produção eu vou precisar instalar o Mysql, NginX etc.

Minha perguntas são:

1) Nesse caso, como itens instalados e de configuração da maquina diferem bastante, eu devo ter 2 arquivos de provisionamento separados ? dev.pp e prd.pp ? Sempre que eu quiser criar uma maquina dev ou prd vou ter que editar o vagrantfille para trocar o nome do script de provisionamento ?

2) No seu exemplo da AWS por exemplo o VagrantFile muda muito, se eu quiser ter a opção de criar uma maquina local ou na AWS eu tenho que ter 2 vagrantfile separados ?

Abraços!

3 respostas

Oi Diogo, tudo bem?

No cenário ideal o seu environment de desenvolvimento deve ser o mais parecido possível com o de produção, mas é natural sim que você precise fazer na máquina de lá algumas coisas que você não precisa fazer toda hora na sua.

(ainda mais em casos específicos, como do NGINX, que você não roda local).

então respondendo as suas perguntas:

1) Nesse caso, como itens instalados e de configuração da maquina diferem bastante, eu devo ter 2 arquivos de provisionamento separados ? dev.pp e prd.pp ? Sempre que eu quiser criar uma maquina dev ou prd vou ter que editar o vagrantfille para trocar o nome do script de provisionamento ?

Exato. Uma técnica bastante usada é de separar os arquivos em pastas com o nome do ambiente. por exemplo: /production/arquivo.pp, /dev/arquivo.pp, etc. E você pode usar variáveis de ambiente de cada máquina pra saber o caminho do arquivo que deve ser executado.

2) No seu exemplo da AWS por exemplo o VagrantFile muda muito, se eu quiser ter a opção de criar uma maquina local ou na AWS eu tenho que ter 2 vagrantfile separados ?

O mesmo caso de cima. No /production/arquivo.pp você terá todas as configurações com os detalhes específicos da AWS. No local/dev não precisa de nada disso.

Faz sentido?

Oi Rodrigo, obrigado pela ajuda.

Entendi a dúvida numero 1, mas a número 2, no caso não poderia ser resolvida apenas no .pp poisao usar um plugin do vagrant para o AWS por exemplo, o vagrantFile tem que mudar.

Minha duvida era em relação a esse caso. Vou Ficar com 2 VagrantFiles um para produção AWS e outro para DEV ?

oi Diogo

acho que agora entendi a sua pergunta numero 2. Me parece que é isso sim.

Em outras palavras, se a configuração não pode ser a mesma, vai precisar de um arquivo com essa configuração. No geral, temos algo como:

/production/arquivo.pp

/dev/arquivo.pp

/homolog/arquivo.pp

/qualquerOutroEnvironmentComConfiguraçõesEspeciais/arquivo.pp