Eu criei um livro de receitas e estou usando manage.chef.io
para hospedá-lo e implantá-lo. Hospedei o livro de receitas no repositório privado do GitHub.
Considere um cenário:
se eu fizer algumas alterações no livro de receitas e knife cookbook upload
nele, masesqueça de empurrarpara o Github.
Como posso ter certeza de que isso não acontecerá? Nem mesmo por engano. Como posso ter certeza de que a qualquer momento todos terão o repositório mais recente e não poderão knife upload
fazê-lo de outra forma? Assim como você não pode git push
se não tiver git pull
editado as alterações.
Meu colega extrai do GitHub, mas não vê nenhuma alteração. Assim ele faz suas próprias mudanças e knife cookbook upload
isso. Mas ele substituirá minhas alterações, pois possui uma versão antiga.
Então, qual é a melhor prática para gerenciar um livro de receitas entre vários DevOps?
Responder1
A abordagem mais simples geralmente é fazer com que o push para o Chef Server fique sob o controle do seu serviço de CI, como o Jenkins. Isso força a serialização em torno do controle de origem, já que nenhum ser humano tem permissão para executar uploads de livros de receitas. Você também pode se comunicar o suficiente para evitar isso, mas isso é muito mais propenso a erros. Alguns fluxos de trabalho do Chef em torno de arquivos de política não apresentam esse problema por não usarem uploads normais de livros de receitas.