3

私はchef-clientクックブックを使ってマシンをchef clientとして設定しています。このクライアントの作成時にノード属性を構成するにはどうすればよいですか?

やりたくないknife node edit。私の目的は、おそらく JSON ファイルに何かを追加して、このノードを作成するときにいくつかのノード属性を設定することです。

アップデート:

このスクリプトを使用してシェフクライアントをブートストラップする何百ものノードを作成しています (要点を参照)。スクリプトに含まれる Node_name は、ノードごとに異なります。同様に、それらをグループ化するノードにカスタム属性を設定したいと考えています。

たとえば、特定のプロジェクトに属するすべてのノードをグループ化したいとします。ノードに属性「project_id」を追加しようと考えていました。プロジェクトに属するすべてのノードを後で検索できるようにします。これは、特定のプロジェクトに属するすべての db_master ロール/webserver ロール/memcached ロールを見つけようとしているときに特に便利です。

だから私がやりたいことはこれです:スクリプトに(要点で見た)いくつかのプレースホルダーが必要です。ここで、project_idなどのカスタム属性をノードに追加できます。それは可能ですか?

4

3 に答える 3

4

上記の両方が機能するか、次のようなものを使用してレシピで作成できます

Node[attribute_name]

json 機能を維持するには、属性またはタグを利用できます

属性を追加するには、生成している json ファイルで次のようなものを使用します。属性名と値は、パラメーターまたは csv/xml 入力によってスクリプトで生成できます。

{

    "test_attribute" : "testvalue"
}

リンクした例では、chef-client ハッシュの下に属性を設定しています

"chef_client": {
 "server_url": "http://ec2-23-20-173-176.compute-1.amazonaws.com:4000",
 "interval": "20"
}

これらのアトリビュートは通常のノード アトリビュートとして作成されnode["chef_client"]["interval"]、たとえば によってアクセスされます。

それは理にかなっていますか?

于 2012-11-14T21:52:48.730 に答える
1

クライアントに役割を与えてそこに属性を追加するか、chef-client の -j パラメーターを使用してノード データを含む .json ファイルを渡します。

于 2012-11-14T19:42:48.243 に答える