Eu tento manter o máximo possível da minha configuração como arquivos JSON e atualizo o chef-server com knife [noun] from file name.json
. Comecei com o repositório no link e mantenho todos os arquivos JSON nos diretórios apropriados. Você pode fazer o mesmo com arquivos YAML ou Ruby também. Use o comando show
, como knife role show apache2 -Fj > roles/apache2.json
, para criar arquivos a partir de dados já existentes em um chef-server.
Alguns dos benefícios de uma abordagem baseada em "do arquivo" são:
- Relativamente fácil mover-se entre o Hosted Chef e o Private Chef
- Você pode testar com o chef-solo usando arquivos de função existentes, itens de data_bags, etc.
- Rastreie deltas entre alterações por meio de
git diff
e veja o histórico de mais do que apenas versões de livro de receitas - Redundância de dados: se seu servidor do Private Chef ou Hosted Chef não estiver disponível, você ainda terá toda a configuração da sua infraestrutura
A única coisa que não está em opscode / chef-repo são os arquivos de nó. Você também pode exportar / importar nós de arquivos, mas geralmente não é recomendado porque os nós devem ser descartáveis. Eu gosto de como Nathen Harvey disse uma vez: "pense nos nós como gado, não como animais de estimação".