2014-03-03 3 views
5

Ich versuche, ein Kochbuch zu testen, das auf drei anderen lokalen Kochbüchern abhängt. Meine Verzeichnisstruktur sieht wie folgt aus:Test-Küche wird nicht auf lokale Kochbücher

/cookbooks/ 
    cookbook_test/ 
    recipes 
    templates 
    metadata.rb 
    cookbook_dep1/ 
    cookbook_dep2/ 
    cookbook_dep3/ 

Meine Metadatendatei in dem Kochbuch Ich versuche einfach zu testen (cookbook_test) die anderen drei Kochbuch Abhängigkeiten erwähnt wie:

depends cookbook_dep1 
depends cookbook_dep2 
depends cookbook_dep3 

jedoch, wenn kitchen converge default-ubuntu-1204 läuft Ich bekomme Folgendes:

[2014-03-03T18:05:13+00:00] ERROR: Cookbook cookbook_devp1 not found. If you're loading cookbook_devp1 from another cookbook, make sure you configure the dependency in your metadata  
[2014-03-03T18:05:13+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)  

Das einzige, was ich online finden konnte, ist, dass ich berkshelf verwenden sollte. Gibt es keine andere Möglichkeit, lokale Kochbücher nur mit Testküchen zu referenzieren?

Antwort

5

Sie müssen die Abhängigkeiten in ein Verzeichnis mit dem Namen "Kochbücher" (oder "Site-Kochbücher") in dem gleichen Verzeichnis, in dem .kitchen.yml ist. Oder verwenden Sie Berkshelf oder Librarian-Chef.

Sie könnten auch versuchen, das übergeordnete Verzeichnis einfach in "./cookbooks" zu verlinken, aber nicht sicher, ob das eine unendliche Rekursion für einen Befehl verursachen würde.

+0

Ich sehe nicht, wie das funktionieren würde. Nach opscode sollte ein Haupt-Repository als Container für alle Kochbücher, Rollen, Databags und Umgebungscode dienen. https://github.com/opscode/chef-repo erklärt dies besser. Alle meine Kochbücher sind in einem einzigen Repository enthalten, das der durch opscode definierten Struktur folgt. Sie schlagen vor, die .kitchen.yml-Datei in die Basis des Repositorys zu schreiben und eine andere Küchen-Suite für jede Art von Konvergenz zu schreiben, die ich ausführen muss (= zusätzliche kitchen.yml-Suite mit eigener Laufliste)? – keftes

+0

Der Trend in einigen Jahren geht dahin, Kochbücher als separate Softwareprojekte und Repositories zu behandeln. Sogar Chef (früher Opscode) hat ihre monolithischen [Kochbücher Repo] (https://github.com/opscode/cookbooks) vor langer Zeit auf [separate] (https://github.com/opscode-cookbooks) aufgeteilt. Das "Chef Repo" enthält heutzutage nur Rollen usw., wenn auch nur das. YMMV, aber die allgemeine Idee von test-kitchen ist, Integrationstests von * one * Kochbuch auf einmal zu helfen, und einen Abhängigkeitsmanager zu verwenden, um die anderen Kochbücher zu holen. – tmatilai

+0

Es sieht so aus, als müssten wir unsere Projektstruktur umgestalten. Vielen Dank. – keftes

Verwandte Themen