Chef - livros de receitas de teste

Caso o livro de receitas seja implantado diretamente e executado no servidor de produção, há grandes chances de que o livro de receitas seja interrompido na produção. A melhor maneira de evitar que isso aconteça é testando o livro de receitas no ambiente de configuração.

A seguir estão as etapas de teste.

Step 1 - Instale o livro de receitas usando o seguinte comando.

[email protected]:~/chef-repo $ knife cookbook site install <cookbook name>

Step 2 - Execute os comandos de teste do livro de receitas da faca no livro de receitas de trabalho.

[email protected]:~/chef-repo $ knife cookbook test VTest  
checking ntp 
Running syntax check on ntp 
Validating ruby files 
Validating templates

Step 3 - Quebre algo no livro de receitas e teste novamente.

[email protected]:~/chef-repo $ subl cookbooks/VTest/recipes/default.rb 
... 
[ node['ntp']['varlibdir'] 
node['ntp']['statsdir'] ].each do |ntpdir| 
   directory ntpdir do 
      owner node['ntp']['var_owner'] 
      group node['ntp']['var_group'] 
      mode 0755 
   end 
end

Step 4 - Execute o comando de teste de faca novamente.

[email protected]:~/chef-repo $ knife cookbook test ntp 
checking ntp 
Running syntax check on ntp 
Validating ruby files 
FATAL: Cookbook file recipes/default.rb has a ruby syntax error: 
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error, 
unexpected tIDENTIFIER, expecting ']' 
FATAL: node['ntp']['statsdir'] ].each do |ntpdir| 
FATAL: ^ 
FATAL: cookbooks/ntp/recipes/default.rb:25: syntax error, 
unexpected ']', expecting $end 
FATAL: node['ntp']['statsdir'] ].each do |ntpdir| 
FATAL:

Método de trabalho

O teste do livro de receitas do Knife executa uma verificação de sintaxe Ruby em todos os arquivos Ruby dentro do livro de receitas, bem como em todos os modelos ERB. Ele percorre arquivos Ruby e executa Ruby–ccontra cada um deles. Rubi–c verifica a sintaxe do script e fecha sem executá-lo.

Depois de passar por todos os arquivos Ruby, o teste do livro de receitas da faca passa por todos os modelos e tubos ERB, a versão redundante criada por –x através de Ruby –c.

Limitações

O teste do livro de receitas do Knife faz apenas uma verificação de sintaxe simples nos arquivos Ruby e modelos ERB. Podemos seguir em frente totalmente testados usando ChefSpec e cozinha de teste.