2012-04-25 7 views
7

Mam serwer zarządzany przez szefa kuchni. Potrzebuję uzyskać dostęp do niektórych wartości, które żyją w worku danych książki kucharskiej ze skryptów nie obsługiwanych przez szefa kuchni.Jak uzyskać dostęp do aktualnych wartości z worka danych szefa kuchni?

/* REST API szefa kuchni umożliwia uzyskanie dostępu do wartości worków danych w sposób widoczny dla serwera Chef. Nie tego chcę. Każdy przebieg chef-client może wprowadzić szereg skoordynowanych zmian, w tym zmiany w worku danych. Jeśli dane na serwerze zostały już zmienione, ale chef-client nie działały lokalnie, konfiguracja lokalna i worek danych po stronie serwera mogą być niezsynchronizowane. */

Widzę dwa rozwiązania:

  • analizowania/zaimportować plik worek dane pod /var/cache/chef/cookbooks/<book-name> ponieważ jest to mniej lub bardziej normalne Ruby.
  • Wewnątrz przepisu zrzuć odpowiednie dane z woreczka danych do zwykłego pliku dostępnego z moich skryptów.

Czy są dostępne lepsze opcje?

+0

Czy jest jakiś powód, dla którego nie możesz zrobić tego, czego chcesz w przepisie Szefa Kuchni? –

+0

@Jordan: nie, można to zrobić z przepisu, ponieważ wydaje się, że jest to jedyna łatwa opcja. zaakceptowana odpowiedź proponuje. – 9000

Odpowiedz

7

Wrzucanie danych z hasha węzła lub toreb danych do osobnego pliku jest dobrym sposobem na komunikację między serwerem szefa kuchni a skryptami działającymi w węźle. Jeśli skrypt można analizować JSON to jest to naprawdę proste:

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

pomocą interfejsu REST Chef brzmi jak przesada, i po omacku ​​wokół w/var/cache/szef kuchni jest po prostu niegrzeczne. (-:

Powiązane problemy