21

私は Chef を初めて使用し、ドキュメントを読んだ後でも、いつ属性を使用し、いつデータバッグを使用するかを理解するのに苦労しています。

どのようなデータを属性として格納し、どのようなデータをデータ バッグに格納する必要がありますか?

ありがとう

4

2 に答える 2

24

まあ、それは依存します。データ バッグと属性はどちらもデータを保持しますが、それらの主な違いは、レシピの実行時に属性がノード プロパティとして公開されることですが、どのデータ バッグが使用されたかを明確に把握することはできません (実行リスト)。

私が個人的に属性に保存するものは次のとおりです。

  • 何か (ファイル、プログラム) がインストール、作成されるパス
  • ソフトウェアのバージョン
  • URL、ポート (ダウンロード元、サーバーがリッスンするなど)
  • ユーザー名

そしてデータバッグで:

  • 公開できないものすべて - 暗号化されたデータ バッグ (秘密鍵、パスワード)
  • ユーザー プロパティ (名前、シェル、パスワード ハッシュ、公開鍵、コメントなど)
  • オブジェクトに似ていますが、単純な文字列や数値データではなく、ノード自体にとって重要ではないその他の構成。

最後のポイントについて: 例は maven repositories リストです。リポジトリには名前、URL、ポリシーなどのプロパティがあります。どのリポジトリが構成されているかはノードにとって重要ではありません。重要なのは、maven がインストールされていることです。もう 1 つの例はユーザーです。使用可能なユーザー名のみが属性に含まれています。他のすべてのデータはデータバッグに入っていますが、公開される可能性があります - そこには秘密のデータはありません.

于 2013-03-08T08:50:57.890 に答える
1

もちろん、これは簡単な答えがないものの 1 つです。私の経験則では、多くのものの 1 つであるものはすべてデータ バッグに属します。たとえば、fnichol のユーザー クックブックを使用してノード上に作成するユーザーとグループのリストがある場合、それはデータ バッグです。MySQL サーバーのパラメーターを微調整する場合は、属性です。

于 2014-03-08T20:31:17.243 に答える