Frage

Ich habe ein Kochbuch erstellt, das viele Abhängigkeiten zu anderen Kochbüchern aufweist.Mein Hauptproblem ist jetzt, dass die Rezepte aus anderen Kochbüchern in zufälliger Reihenfolge ausgeführt werden.Wenn ich die Ausführung dieser Rezepte in der Vagrant-Datei spezifiziere wie:

chef.add_recipe "gitlab::core_prereq"
chef.add_recipe "postfix"
chef.add_recipe "gitlab::users_prereq"
chef.add_recipe "rvm::vagrant"
chef.add_recipe "rvm::system"
chef.add_recipe "ohai"
chef.add_recipe "nginx"
chef.add_recipe "gitlab::python_tools_prereq"
chef.add_recipe "gitlab::gitolite_prereq"
chef.add_recipe "gitlab::gitlab_install"

Alles funktioniert einwandfrei, aber ich möchte diese Spezifikation im Rezept haben, damit ein Benutzer nur das Standardrezept einfügen muss und alles, was benötigt wird, in der richtigen Reihenfolge installiert wird.

Wie kann ich das lösen?Soll ich eine Rolle spielen?Ich bekomme es nicht aus den Chefdokumenten, wenn die Rolle in einem Rezept angegeben werden kann.

War es hilfreich?

Lösung

Ich denke, nicht alle Ihre Rezepte können auf einem sauberen Computer installiert werden.Aber sie sollten es sein.Wenn ein Rezept "A" einige Voraussetzungen erfüllt, sollten Sie die erforderlichen Rezepte mit zu Rezept "A" hinzufügen include_recipe.

In deinem Fall denke ich das gitlab::gitlab_install installieren benötigt gitlab::gitolite_prereq und gitlab::python-Werkzeuge - prereq.Das heißt, Sie sollten zu Ihrem hinzufügen cookbooks/gitlab/recipes/gitlab_install.rb:

incude_recipe 'gitlab::gitolite_prereq'
incude_recipe 'gitlab::python_tools_prereq'

Auf diese Weise können Sie auch Rezepte aus anderen Kochbüchern einbinden.Zum Beispiel ohai benötigt rvm::systeme.Hinzufügen zu cookbooks/ohai/recipes/default.rb:

incude_recipe 'rvm::system'

und fügen Sie hinzu cookbooks/ohai/metadata.rb:

depends 'rvm'

Auf diese Weise müssen Sie nicht alle Rezepte in einer genauen Reihenfolge schreiben und Sie müssen nicht alle Abhängigkeiten schreiben, sie werden automatisch installiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top