Depuração de receitas de chef sem destruição e reaprovisionamento vagabundos
Pergunta
Estamos trabalhando em uma receita de chef que constrói PHP a partir do código-fonte.Porém, sempre que fazemos uma alteração na nossa receita e queremos executá-la novamente, leva muito tempo (cerca de 20 minutos).
O que temos feito é fazer nossas alterações usando:
vagrant destroy
seguido pela:
vagrant up
Seria bom se de alguma forma pudéssemos executar novamente nossa receita única que estamos tentando atualizar.
Alguém sabe como poderíamos fazer isso?Ou como o vagrant determina que nossa receita php já está instalada/executada?
Solução
vagrant provision
deveria fazer isso por você.O Chef deve cuidar apenas de executar as coisas que precisam ser executadas... como uma receita alterada.
Outras dicas
Você pode usar:
vagrant provision
Isso executará novamente a etapa de provisionamento, que não vagrant ssh
e dá início ao Chef.
Se você estiver usando um Chef Server com chef-client, será necessário fazer upload do livro de receitas para o servidor com faca após fazer modificações locais.Então o chef-client na máquina vagrant fará o download dos arquivos alterados.
Se estiver usando o Chef Solo, você pode compartilhar pastas com a VM, para que as alterações feitas sejam captadas imediatamente, em vez de ter que copiá-las para a VM.