2012-04-25 13 views
7

私はシェフが管理するサーバーを持っています。 シェフが運営していないスクリプトから料理本のデータバッグに入っている値にアクセスする必要があります。シェフのデータバッグから現在の値にアクセスする方法は?

/* シェフのREST APIを使用すると、シェフサーバーに表示されるデータバッグの値にアクセスできます。これは私が望むものではありません。chef-clientの実行では、データバッグの変更を含む多くの調整済みの変更が導入される可能性があります。サーバーのデータが既に変更されていても、chef-clientがローカルで実行されなかった場合、ローカルセットアップとサーバー側のデータバッグが同期していない可能性があります。それは、多かれ少なかれ、通常のRubyはだから/は/var/cache/chef/cookbooks/<book-name>の下にデータバッグファイルをインポート

  • パース:*/

    私は2つのソリューションを参照してください。

  • レシピ内で、データバッグの関連データをスクリプトからアクセスできるプレーンファイルにダンプします。

もっと良い選択肢はありますか?

+0

シェフのレシピであなたが望むことができない理由はありますか? –

+0

@Jordan:いいえ、これは唯一の簡単なオプションだと思われるので、レシピから行うことができます。受け入れられた答えは提案する。 – 9000

答えて

7

ノードハッシュまたはデータバッグから別のファイルにデータをダンプすることは、シェフサーバーとノード上で実行されているスクリプトとの間で通信するのに適しています。スクリプトは、JSONを解析できる場合、それは本当に簡単です:

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

シェフRESTインタフェースはやり過ぎのように聞こえる、と/ var /キャッシュ/シェフの周り模索するだけで失礼である使用します。 ( - :

関連する問題