Chefを使い始めたばかりですが、いくつかのレシピでのようなものがあることに気づきましたnode['cpu']['total']
。
質問やオンラインで「シェフノード属性」などを検索しましたが、使用可能なノード属性のリストが見つかりません。
私が探しているのは:
- すべて
node[...]
自動的に定義されますか? - 使用可能なすべてのノード属性(CPU ...)のリストはどこにありますか?
Chefを使い始めたばかりですが、いくつかのレシピでのようなものがあることに気づきましたnode['cpu']['total']
。
質問やオンラインで「シェフノード属性」などを検索しましたが、使用可能なノード属性のリストが見つかりません。
私が探しているのは:
node[...]
自動的に定義されますか?すべてのノード[...]は自動的に定義されていますか?
いいえ。それらのいくつかは、シェフの実行の開始時にOhaiによって設定されます。それらのいくつかはクックブックの(デフォルトの)属性によって設定され、それらのいくつかはシステムのさまざまな場所で上書きされます(たとえば、役割、他のレシピなど)。
使用可能なすべてのノード属性(CPU ...)のリストはどこにありますか?
これは、実行しているシステム、インストールしたohaiプラグイン、および実行リストにあるクックブックによって異なります。ohai
基本的なOhai属性の完全なリストを取得するには、シェルで実行するだけで、すべての自動属性が出力されます。他の人のために、あなたはあなたの料理本を見なければなりません。
ドキュメントのリファレンスについては、Chefのドキュメントをご覧ください。私は良い出発点をリンクしましたが、属性を実際に理解することは、かなり柔軟な(したがって複雑な)システムであるため、少し複雑です。ドキュメントを少し参照する必要があります。
ああ!つまり、属性を設定するのはOhaiレシピ/プラグインです。具体的には、linux/cpuプラグインです。
将来的に他の人に役立つかもしれません:
ノードのすべての自動属性のリスト:(ohaiプラグインのバージョンによって異なります)
各chef-clientの実行の開始時にOhaiによって収集される自動属性のリストは、組織ごとに異なり、構成されているさまざまなサーバータイプと、それらのサーバーが実行されているプラットフォーム間で異なることがよくあります。Ohaiによって収集されたすべての属性は、chef-clientによって変更できません。特定のノードに対してOhaiによって収集される自動属性を確認するには、次のコマンドを実行します。
find /opt/chefdk/embedded/lib/ruby/gems/*/gems/ohai-*/lib -name "*.rb" -print | xargs grep -R "provides" -h |sed 's/^\s*//g'|sed "s/\\\"/\'/g"|sort|uniq|grep "^provides"