Chef Kochbuch Abhängigkeiten von Abhängigkeiten

7

Dies könnte eine einfache Frage sein - ich versuche ein Kochbuch ( gitlab ) zu installieren

Ich habe das Kochbuch in einen Ordner auf meinem lokalen Laufwerk geklont und ausgeführt

knife cookbook upload gitlab.

Sofort warf es einen Fehler:

Cookbook gitlab depends on cookbook postgresql version >= 0.0.0

Also rannte ich

knife cookbook site download postgresql

Es gab einige Abhängigkeiten, die weitere Abhängigkeiten hatten, und jetzt bin ich an dem Punkt angelangt, an dem ich Kochbücher installiere, von denen ich weiß, dass ich sie nicht benötige (dmg, Windows usw.).

Ich hatte den Eindruck, dass sich dieses Zeug automatisch wie Eignung oder lecker auflöste. Habe ich einen entscheidenden Schritt eines Kochbuch-Abhängigkeits-Resolvers verpasst?

Jeff V.
quelle

Antworten:

5

Verwenden Sie knife cookbook site installdiese Option, um Abhängigkeiten aufzulösen.

Maciej Pasternacki
quelle
1
Gibt es eine Möglichkeit, dies zu tun, ohne meine Kochbücher in einem Git-Repository zu haben?
Jeff V
Nicht mit knife cookbook site install, es ist an Git gebunden. Da ich Git selbst benutze, weiß ich nicht, ob Librarian oder Berkshelf, die in Holger Justs Antwort erwähnt wurden, mit anderen Versionskontrollsystemen funktionieren.
Maciej Pasternacki
Ich akzeptiere dieses, da es die eingebaute Funktionalität ist, von der ich dachte, dass sie existiert.
Jeff V
Dies vermeidet nicht, eine Menge Cruft zu bekommen, die Sie nicht benötigen, und es werden keine Submodule verwendet, die sich gut in Vagabunden in einem Kochbuch-Unterverzeichnis integrieren lassen. Was ich nützlich finden würde, ist eine Möglichkeit, Koch zu führen, aber zu haben Abhängigkeiten werden alle zusammen ignoriert, sodass ich nur Fehlermeldungen für Kochbücher erhalten würde, die tatsächlich verwendet würden. Ich könnte dann nur diese installieren.
6

Sie können einen der etablierten Kochbuch-Abhängigkeitsmanager verwenden, z. B. Bibliothekar oder Berkshelf .

Beide Tools dienen dazu, Kochbücher aus dem Internet abzurufen, z. B. aus Code-Repositorys wie github oder der Website community.opscode.com , und sie auf Ihrem lokalen System abzulegen . Diese Gebühren lösen automatisch rekursive Abhängigkeiten und Versionsanforderungen auf und ziehen alle erforderlichen Kochbücher herunter. Sobald Sie alle diese lokal verfügbar haben, können Sie sie alle auf den Server hochladen, z. B. mithilfe von

knife cookbook upload -a
Holger Just
quelle
Was ich mit beiden nicht herausfinden konnte, ist, wenn ich versuche, ein Kochbuch eines Drittanbieters zu verwenden, und es keine Unterstützung für Bibliothekar oder Berkshelf hat, wird das die Dinge kaputt machen?
Jeff V
3
Beide Tools verwenden die metadata.rbDatei für das Abhängigkeitsmanagement, die ohnehin in jedem Kochbuch vorhanden sein sollte (wie es vom Chef-Server benötigt wird). Nein, meistens müssen Sie in Ihrem Kochbuch nichts Besonderes tun. Die einzig mögliche Ausnahme ist, wenn Sie Abhängigkeiten haben, die auf community.opscode.com nicht verfügbar sind. Dann müssen Sie explizit angeben, wo sich diese in Ihrem Cheffileoder befinden Berksfile.
Holger Nur
Wie wäre es mit Download? Ich konnte keinen sauberen Weg finden, um ein Kochbuch mit Abhängigkeiten herunterzuladen. Wenn ich es zum Beispiel tue knife cookbook download Aund Adavon abhängig bin B, wird es nicht heruntergeladenB
Jigar Joshi
@JigarJoshi Wie ich in meiner Antwort sagte, sollten Sie einen Abhängigkeitsmanager für Kochbücher verwenden, der die Abhängigkeiten auflösen und alle erforderlichen Kochbücher herunterladen kann. Die meisten Leute benutzen heutzutage Berkshelf . Aber ich persönlich bevorzuge immer noch Bibliothekar-Koch.
Holger nur
Ich benutze berkshelf, lade das Kochbuch mit herunter knife cookbook download Aund wenn ich es starte berks installoder berks packagees fehlschlägt, weil es versucht, seine Abhängigkeit Bim selben Verzeichnis zu finden
Jigar Joshi