fbpx

[和訳] 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メーリングリストに報告してください。

新規CTA