¿Debo usar incluir receta o agregar la lista receta para ejecutar?


Tratando de encontrar el mejor enfoque para un gran proyecto. ¿Cuándo es apropiado agregar recetas dentro de una receta usando include_recipe en lugar de agregar la receta a run_list? ¿Hay una buena regla general?

Author: Micah, 2013-06-05

2 answers

Como yo lo veo, cualquier receta debería ser capaz de funcionar en una máquina vacía por sí sola. Así que si alguna receta A depende de la receta B ejecutar antes de ella, yo siempre uso include_recipe.

Por ejemplo: 2 libros de cocina, tomcat y java. Tomcat requiere java.

  1. Cuando algún usuario quiere instalar tomcat, es posible que no tenga idea de que en realidad requiere algún otro libro de cocina para instalarlo. Se ejecuta la receta de tomcat y o bien falla con algún mensaje de error completamente inútil como " No java encontrado " o peor aún-tiene éxito, pero luego, por supuesto, el usuario no puede iniciar tomcat, porque no tiene Java instalado.

  2. Pero cuando hay una línea include_recipe 'java' en tomcat cookbook, que también requiere una línea depends 'java' en metadatos, el usuario al intentar instalar tomcat, verá el mensaje de error comprensible: "the cookbook java not found". De esta manera, el usuario puede descargar dependencias por su cuenta (o incluso con alguna herramienta automática) sin ejecutar recetas, pero leyendo metadatos.

 74
Author: Draco Ater,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-13 19:45:19

Toda la lógica debe ser controlada con listas de ejecución. Los libros de cocina, por más que lo intenten, no son tan reutilizables como a la gente le gustaría pensar. Todo lo que include_recipe hace es agregar otro lugar donde los usuarios tienen que buscar para averiguar lo que la lista de ejecuciones va a hacer para hacerlo explícito y ponerlo en la lista de ejecuciones.

 2
Author: davidk01,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-23 20:05:36