Minha equipe criou um grande número de livros de receitas para chefs. Eu estava pensando em quais métodos e estruturas eu deveria procurar, para que possamos começar a criar testes para garantir que nossos nós estejam configurados corretamente?
Minha equipe criou um grande número de livros de receitas para chefs. Eu estava pensando em quais métodos e estruturas eu deveria procurar, para que possamos começar a criar testes para garantir que nossos nós estejam configurados corretamente?
Respostas:
Você também pode procurar no Vagrant .
Um vídeo está mostrando como usar a combinação dos livros de receitas do Vagrant e Chef. E há uma página dedicada ao Vagrant e Chef no site Opscode (atualização 2015-01-23: a página foi ...).
Há a cucumber-chef
gema do rubi e um livro recém-lançado Nelson-Smith et al - "Infraestrutura orientada a testes com chef" que faz uso dessa gema - http://www.cucumber-chef.org/
Lembrei-me disso na minha lista de observação do github: https://github.com/gregretkowski/vmth/
O VMTH (Virtual Machine Test Harness) fornece um mecanismo para testar sua automação de infraestrutura de unidade - políticas de marionetes, receitas de chefs, scripts de implantação de lançamentos, etc. esse estado após cada teste, para que uma série de testes possa ser executada em uma instância de VM em rápida sucessão
Há várias opções.
O Opscode possui no roteiro de desenvolvimento do Chef suporte "não operacional", o que ajudará nos testes. Nós argumentam que "não-op" não significa necessariamente fazer o que quiser, mas entenda o desejo para o recurso.
Algumas das respostas aqui parecem um pouco antigas. Para testes locais e de CI, eu usaria uma ferramenta de equipamento de teste como o Test Kitchen, que também suporta o Vagrant, se você já estiver usando isso.
Ele permitirá que você execute seus coobooks em muitas soluções de nuvem e virtualização disponíveis hoje: EC2, Digital Ocean, Vagrant, Docker, etc.
Ele também possui plugins para permitir que você execute uma das muitas ferramentas de teste de infraestrutura existentes hoje:
Na minha experiência, a única maneira de realmente fazer isso é com um ambiente de preparação e práticas de desenvolvimento cuidadosas. Zombar do trabalho real a ser feito é incrivelmente bagunçado e frágil, e os suítes de teste de CI executados no commit ou no push são muito esforços para escrever e manter (embora o Chef provavelmente seja muito melhor nisso do que o Puppet, que é a minha principal experiência ) e leva um tempo ridículo para executar.
EDITAR
Logo depois que escrevi isso, de repente percebi que poderia haver uma maneira de fazer testes "unitários" razoavelmente eficientes das receitas Chef / Puppet com um sistema de arquivos da união e uma quantidade significativa de andaimes. No entanto, não consigo encontrar nada que alguém já tenha feito nesta área. Eu poderia ter acabado de me encontrar um projeto.