Prática recomendada para testar receitas de chefs?

18

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?

linusthe3rd
fonte
Parece que pertence a cooking.se;)
Mark Henderson
Por um momento, pensei que você estivesse falando do Chef: en.wikipedia.org/wiki/Chef_%28programming_language%29 #
Janne Pikkarainen

Respostas:

7

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 ...).

Henk
fonte
3

Há a cucumber-chefgema 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

pfo
fonte
1

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.

jtimberman
fonte
1

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:

  • serverspec - A estrutura de teste mais popular.
  • goss - YAML, binário simples, independente, extremamente rápido.
  • inspec - pense nisso como o serverpec melhorado (escrito pelos chefs).
  • testinfra - estrutura de teste de servidor baseada em Python.
Ahmed Elsabbahy
fonte
0

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.

mulher
fonte
Testar a própria infraestrutura é incrivelmente importante. Naturalmente, existem várias metodologias, funcionais e não funcionais, necessárias para implementar isso de maneira um pouco diferente das metodologias de software.