[和訳] Chef Client 12.3.0 リリース #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は Chef Client 12.3.0 Released (2015/04/28) の和訳です。
シェフのみなさん、こんにちは。
Chef Client 12.3.0をリリースしました。このリリースは多くの新機能と同じくらいバグ修正を含んでいます…。お楽しみいただけると思います。変更のすべては変更履歴を確認してください。
何が新しいのか
ソケットなしのChef Zeroローカルモード
ローカルモードでのChef Zeroサーバへのすべてのリクエストは、Chef Zeroの新しいソケットなしのリクエスト機構を使います。デフォルトでは、Chef Zeroはlocalhostにポートを開いてHTTPリクエストを受け付けます。これを無効にするには、--no-listenコマンドラインフラグを付与するか、chef-clientおよびknifeの設定ファイルにlisten falseを追加します。
最小Ohaiフラグ
Chef Client、Solo、Applyが--minimal-ohaiフラグをサポートしました。これを設定すると、ChefはNode名の検出とResource/Providerの決定のために必要なほんのわずかのプラグインのみでOhaiを実行します。この機能の主目的はさまざまなコンテキストでchef-client (とsolo)を何度も実行するChefのインテグレーションテストの高速化のためですが、上級者ならばもっと別の使い方を思い付くかもしれません。コンパイルフェイズでOhaiのResourceを実行するような回避策をユーザが実装しない限り、他のOhaiデータに依存するあらゆるCookbookはこのモードでは完全に動かなくなります。
動的Resource解決とChef Class Façade(ファサード)
Resourcesの解決は動的に行われ、Providersと同じで、与えられたプラットフォーム上では複数のResourceが同じprovides行を扱えます。provides行を通して解決されるDSLに「package」のようなResourceを記述したら、例えばMacにおけるHomebrewとMacPorts package Resourceのような複数のクラスが同じResourceを提供していると、Chef::Platform::ResourcePriorityMapによって一つが選ばれます。
ResourcePriorityMapとProviderPriorityMapの両方の優先順位を変更するには、ChefクラスのヘルパーAPIによって組み立てられます。
- Chef.get_provider_priority_array(resource_name)
- Chef.get_resource_priority_array(resource_name)
- Chef.set_provider_priority_array(resource_name, Array<Class>, *filter)
- Chef.set_resource_priority_array(resource_name, Array<Class>, *filter)
Mac OS Xでのpackage ResourceをグローバルにMacPorts Providerに変更するには次のようにします。
Chef.set_resource_priority_array(:package, [ Chef::Resource::MacportsPackage ], os: 'darwin')
この行をCookbookのLibraryファイルに置けば、あらゆるRecipeがコンパイルされる前に適用されます。
入手するには
ダウンロードページを参照してください。
加えて、Windows以外のプラットフォームでは次のコマンドで最新のChef Clientをダウンロードできます。
curl -L https://www.chef.io/chef/install.sh | sudo bash -s -- -v 12.3.0
Windowsでは、次のリンクからこのバージョンをダウンロードできます: Chef Client 12.3.0
このリリースで何か問題があれば、Githubのissueに登録するか、chefまたはchef-devメーリングリストに報告してください。