8

Chefが管理するサーバーがあります。Chefによって実行されていないスクリプトから、クックブックデータバッグにあるいくつかの値にアクセスする必要があります。

/ * Chef REST APIを使用すると、Chefサーバーから見たデータバッグの値にアクセスできます。これは私が望むものではありません。実行するたびchef-clientに、データバッグの変更を含む多くの調整された変更が導入される場合があります。サーバー上のデータがすでに変更されているがchef-client、まだローカルで実行されていない場合は、ローカルセットアップとサーバー側のデータバッグが同期していない可能性があります。* /

私は2つの解決策を見ます:

  • /var/cache/chef/cookbooks/<book-name>それは多かれ少なかれ通常のRubyなので、下のデータバッグファイルを解析/インポートします。
  • レシピ内で、関連データをデータバッグからスクリプトからアクセスできるプレーンファイルにダンプします。

より良いオプションはありますか?

4

1 に答える 1

7

ノード ハッシュまたはデータ バッグから別のファイルにデータをダンプすることは、Chef サーバーとノードで実行されているスクリプトとの間で通信するための良い方法です。スクリプトが JSON を解析できる場合は、非常に簡単です。

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

Chef REST インターフェースを使用するのはやり過ぎのように聞こえます。(-:

于 2012-04-26T12:03:19.960 に答える