Prática recomendada para testar receitas de chef?

19

Minha equipe criou um grande número de livros de culinária do chef. Eu estava me perguntando que métodos e frameworks eu deveria investigar para que pudéssemos começar a criar testes para garantir que nossos nós estivessem configurados corretamente?

    
por linusthe3rd 11.08.2011 / 04:18

5 respostas

7

Você pode (também) investigar o Vagrant para isso.
Um vídeo está mostrando como usar o combo de livros de receitas Vagrant e Chef. E há uma página dedicada ao Vagrant and Chef no site do Opscode (atualização 2015-01-23: a página desapareceu ...).

    
por 11.08.2011 / 09:05
3

Há o cucumber-chef ruby gem e um livro recentemente lançado Nelson-Smith et al - "Test-driven Infrastructure with Chef" que faz uso dessa jóia - link

Acabei de me lembrar disso na minha lista de observação do github: link

The VMTH (Virtual Machine Test Harness) provides a mechanism to unit-test your infrastructure automation - puppet policies, chef recipes, release deployment scripts, etc. It uses features of modern VM monitors (like qemu) to snapshot system state, and then reset that state after each test, so that a series of tests can be performed on a VM instance in rapid succession

    
por 11.08.2011 / 08:36
1

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 verdadeiro trabalho a ser feito é incrivelmente bagunçado e frágil, e as suítes de testes de CI em commit ou push são um lote de esforço para escrever e manter (embora o Chef seja provavelmente muito melhor nisso do que Fantoche, que é a minha principal experiência), e levar um tempo ridículo para correr.

EDITAR

Logo depois que escrevi isso, de repente percebi que poderia haver uma maneira de fazer testes razoavelmente eficientes de "unidade" de receitas Chef / Puppet com um sistema de arquivos unidos e uma quantidade significativa de andaimes. No entanto, não consigo encontrar nada por aí que alguém já tenha feito nessa área. Eu poderia ter acabado de encontrar um projeto.

    
por 11.08.2011 / 08:17
1

Há várias opções.

Opscode tem no roteiro de desenvolvimento do Chef suporte "não operacional" que ajudará nos testes. Fazemos argumentar que "no-op" não necessariamente faz o que você quer, mas entenda o desejo pelo recurso.

    
por 20.08.2011 / 08:05
1

Algumas das respostas aqui parecem um pouco antigas. Para CI e testes locais, eu procuraria alavancar uma ferramenta de teste como Test Kitchen , que também suporta o Vagrant se você já estiver usando isso. / p>

Ele permitirá que você execute seus coobkooks contra muitas soluções de virtualização e nuvem existentes hoje: EC2, Oceano Digital, Vagrant, Docker, etc.

Ele também tem plugins para permitir que você execute uma das muitas ferramentas de teste de infraestrutura que existem hoje:

  • serverspec - Estrutura de testes mais popular.
  • goss - YAML, binário simples e independente, extremamente rápido.
  • inspec - pense nisso como serverspec melhorado (escrito pelos chefs).
  • testinfra - Estrutura de teste de servidor baseada em Python.
por 14.12.2016 / 00:15