2012-04-25 8 views
7

Ich habe einen Server von Chefkoch verwaltet. Ich muss auf einige Werte zugreifen, die in einem Kochbuch Datenbeutel aus Skripten leben, die nicht von Chef ausgeführt werden.Zugriff auf aktuelle Werte aus einer Chef-Datensammlung?

/* Chef REST API ermöglicht Werte Daten Tasche als Chef-Server gesehen zuzugreifen. Das ist nicht was ich will. Jeder Lauf chef-client kann eine Reihe von koordinierten Änderungen einschließlich Änderungen im Datensack einführen. Wenn die Daten auf dem Server bereits geändert wurden, aber chef-client noch nicht lokal ausgeführt wurde, sind die lokalen Einstellungen und der serverseitige Datenspeicher möglicherweise nicht mehr synchron. */

Ich sehe zwei Lösungen:

  • Parse/die Daten Tasche Datei unter /var/cache/chef/cookbooks/<book-name> importieren, da es mehr oder weniger normal Ruby.
  • In einem Rezepte, Dump relevante Daten aus dem Datum Tasche in eine einfache Datei zugänglich von meinen Skripten.

Gibt es bessere Möglichkeiten?

+0

Gibt es einen Grund, warum Sie nicht tun können, was Sie in einem Chefrezept wollen? –

+0

@ Jordan: nein; dies kann von einem Rezept getan werden, da es scheint, die einzige einfache Option zu sein akzeptierte Antwort schlägt vor. – 9000

Antwort

7

Dumping-Daten von dem Knoten-Hash oder Daten Beuteln in eine separate Datei ist eine gute Art und Weise zwischen dem Koch-Server zu kommunizieren und Skripte auf einem Knoten läuft. Wenn Ihr Skript JSON analysieren kann dann wirklich es ist einfach:

file "/etc/script.json" do 
    owner "root" 
    group "root" 
    mode 0644 
    content node[:whatever].to_json 
end 

Verwenden der Chef REST-Schnittstelle wie übertrieben klingt, und tastend um in/var/cache/Koch ist einfach unhöflich. (-:

Verwandte Themen