2014-01-19 5 views
10

Ich habe versucht, einen Chef Daten Tasche aus dem Koch-Repo-Verzeichnis zu erstellen, mit dem Befehl:Wo ist mein Chef-Datenbeutel?

knife data bag create users deployer 

und ich bekomme die Antwort:

Created data_bag[users] 
Created data_bag_item[deployer] 

Aber ich bin nicht in der Lage das lokalisieren Datenbeutel Benutzer noch seine Datenbeutel Artikel. Es ist nicht im data_bags-Ordner oder irgendwo anders, das ich sehen konnte. Wenn ich eine

bin
knife data bag show users 

Es zeigt mir den Namen der Datensack-Artikel. Also muss es irgendwo gespeichert werden. Die Dokumentationen sagen mir, dass der Datenbeutel im Ordner chef-repo -> data_bags -> Benutzer sein sollte. Aber mein data_bags-Ordner scheint leer zu sein. Wo ist der Datenbeutel, den ich gerade erstellt habe?

Antwort

13

Mit Chef gibt es eine Diskrepanz zwischen Ihrem lokalen Computer (genannt "Workstation") und dem Remote-Chef-Server. In Ihrem Fall hat der Befehl knife den Datenbeutel auf dem Remote-Chefserver erstellt.

Ich verstehe, wie das irreführend sein kann. Ein Datenbeutel ist nichts anderes als ein Ordner mit einer oder mehreren .json Dateien. Normalerweise generieren Sie diese Struktur manuell auf Ihrer Workstation (entweder über die GUI oder das Terminal).

Also in Ihrem Beispiel, nur den Ordner, den Sie beschrieben haben (chef-repo -> data_bags -> users) und dann erstellen Sie eine chef-repo/data_bags/users/deployer.json Datei mit dem Schema von dem Kochbuch beschrieben.

+2

Danke für die Erklärung. Ich ging zurück, um die Dokumentation erneut zu lesen, und tatsächlich sagt es: "Das Argument create wird verwendet, um dem Server einen Datenbeutel ** hinzuzufügen". Irgendwie habe ich das vermisst. Auf jeden Fall muss ich sagen, dass es für einen Chef Noob ein wenig verwirrend sein kann. –

+1

Alle unsere Dokumente sind unsere Open Source auf GitHub. Der technische Redakteur des Chefs würde diese Art von Feedback gerne hören (@chefdocs auf Twitter). – sethvargo

12

Wenn Sie

Messer Daten Tasche verwenden erstellen Benutzer déployer

Messer erzeugt, dass die Daten Tasche auf Koch-Server. Es ist nicht auf Ihrem lokalen Chefarbeitsplatz verfügbar. Sie können diesen Datenbeutel jedoch auf der lokalen Arbeitsstation herunterladen. Verwenden Sie einfach den folgenden Befehl

Messer herunterladen data_bags

Mit diesem Befehl erhalten Sie Daten Tasche in Koch-repo/data_bags/users/deployer.json herunterladen können Sie dorthin gehen und direkt aktualisieren diese JSON-Datei. Wenn Sie fertig sind, denken Sie daran, diesen Datenbeutel erneut mit "Messer-Upload" zu laden. "

+0

Command 'knifel upload .' hat mir wirklich geholfen, weil ich nirgendwo etwas gefunden habe Wie ich meine Datensäcke auf den Server hochladen konnte. Und aus irgendeinem Grund fand 'Messer Datenbeutel aus Datei ...' nicht mein Databag – Starx