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?
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.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
quelle
metadata.rb
Datei 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 IhremCheffile
oder befindenBerksfile
.knife cookbook download A
undA
davon abhängig binB
, wird es nicht heruntergeladenB
knife cookbook download A
und wenn ich es starteberks install
oderberks package
es fehlschlägt, weil es versucht, seine AbhängigkeitB
im selben Verzeichnis zu finden