Czy powinienem użyć include recipe lub dodać przepis, aby uruchomić listę?

Próbuje znaleźć najlepsze podejście do dużego projektu. Kiedy należy dodawać przepisy do przepisu używając include_recipe w przeciwieństwie do dodawania przepisu do run_list? Czy istnieje dobra zasada?

Author: Micah, 2013-06-05

2 answers

Jak widzę, każdy przepis powinien być w stanie uruchomić na pustej maszynie samodzielnie. Więc jeśli jakiś przepis a zależy od przepisu B Uruchom przed nim, zawsze używam include_recipe.

Na przykład: 2 książki kucharskie, tomcat i java. Tomcat wymaga Javy.

  1. Gdy jakiś użytkownik chce zainstalować tomcat, może nie mieć pojęcia, że w rzeczywistości wymaga innej książki kucharskiej, aby ją zainstalować. Uruchamia przepis tomcat i albo zawiedzie z jakimś zupełnie nieprzydatnym Komunikatem o błędzie, takim jak " No java found " lub co gorsza - udaje się, ale wtedy oczywiście użytkownik nie może uruchomić Tomcata, ponieważ nie ma zainstalowanej Javy.

  2. Jednak gdy w tomcat cookbook znajduje się linia include_recipe 'java', która również wymaga linii depends 'java' w metadanych, użytkownik podczas próby instalacji tomcat zobaczy zrozumiały komunikat o błędzie: "the cookbook java not found". W ten sposób użytkownik może pobierać zależności samodzielnie (lub nawet za pomocą jakiegoś automatycznego narzędzia) bez uruchamiania przepisów, ale czytania metadane.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-13 19:45:19

Cała logika powinna być kontrolowana za pomocą list run. Książki kucharskie, spróbuj, jak mogą, nie są tak wielokrotnego użytku, jak ludzie chcieliby myśleć. Wszystko, co include_recipe robi, to dodawanie kolejnego miejsca, w którym użytkownicy muszą szukać, aby dowiedzieć się, co zrobi lista uruchomień, więc zrób to wyraźnie i umieść ją na liście uruchomień.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-23 20:05:36