Chef - Prueba de libros de cocina

En caso de que el libro de cocina se implemente y se ejecute directamente en el servidor de producción, hay muchas posibilidades de que el libro de cocina se rompa en producción. La mejor forma de evitar que esto suceda es probar el libro de recetas en el entorno de configuración.

Los siguientes son los pasos para realizar la prueba.

Step 1 - Instale el libro de recetas con el siguiente comando.

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

Step 2 - Ejecute los comandos de prueba del libro de cocina del cuchillo en el libro de cocina de trabajo.

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

Step 3 - Romper algo en el libro de cocina y probar de nuevo.

[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 - Vuelva a ejecutar el comando de prueba de cuchillo.

[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 trabajo

La prueba de libro de cocina de Knife ejecuta una verificación de sintaxis de Ruby en todos los archivos de Ruby dentro del libro de cocina, así como en todas las plantillas ERB. Recorre los archivos Ruby y ejecuta Ruby–ccontra cada uno de ellos. Rubí–c comprueba la sintaxis del script y se cierra sin ejecutarlo.

Después de revisar todos los archivos de Ruby, la prueba del libro de cocina de cuchillo pasa por todas las plantillas y tuberías ERB, la versión redundante creada por –x a través de Ruby –c.

Limitaciones

La prueba del libro de cocina de Knife solo realiza una simple verificación de sintaxis en los archivos Ruby y las plantillas ERB. Podemos seguir adelante con la prueba completa mediante el uso de ChefSpec y la cocina de prueba.