Chef-cross-platform-cookbooks
提供:Dev Guides
シェフ-クックブックのクロスプラットフォーム
Cross-Platformクックブックは、実行する基本的な環境を採用するクックブックです。 Chefは多くの機能を提供します。これは、デプロイされるOSで実行可能なクロスプラットフォームクックブックを作成するのに役立ちます。 これにより、開発者は完全に機能するクックブックを作成できます。
これを行うには、クックブックが必要です。 私たちの場合、それはtest_cookbookとクックブック定義を含む実行リストになります。
作業方法
ノードプラットフォームの詳細を取得し、クックブックで条件ロジックを実行することは、プラットフォームに依存します。 今回のケースでは、Ubuntuでテストします。
- ステップ1 *-ノードがUbuntuの場合、メッセージを記録します。
- ステップ2 *-クックブックをChefサーバーにアップロードします。
- ステップ3 *-ノードでChefクライアントを実行します。
あるいは、特定のプラットフォームに興味がなく、使用している宣言的なプラットフォームを知るだけでよい場合は、次のステートメントを使用できます。
変更されたクックブックをアップロードし、UbuntuノードでChefクライアントを実行すると、次の結果が表示されます。
スクリプトのワークフロー
上記のコマンドで、Ohaiはノードのオペレーティングシステムの現在のステータスを検出し、ノードオブジェクトと共にプラットフォーム属性として保存します。
または、メソッドスタイルの構文を使用することができます-
プラットフォーム固有の値の設定
プラットフォーム固有の値を設定するために、chefは便利なメソッドvalue_for_platformおよびvalue_for_platform_familyを提供しています。 複雑なcaseステートメントを回避し、代わりに単純なハッシュを使用するために使用できます。
クックブックの例
上記の例では、コマンドは定義されているOS固有です。
- Debianの場合、「runsvdir-start」が機能します
- Ubuntuの場合、「start runsvdir」が機能します
- Gentooの場合、「/etc/init.d/runit-start」が機能します