fbpx

[和訳] Chef Server 12.0.3 リリース #getchef

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本稿は Chef Server 12.0.3 Released (2015/02/05) の和訳です。

本日Chef Server 12.0.3をリリースしました。本リリースにおける最大の注目点は、複数キー認証と、独自のキーローテーションを作成できるchef-server-ctlコマンドの初期実装です! 近い将来、この機能を拡張して完全なAPIサポートとするつもりですが、今からでも試してみることが可能です。

最新パッケージは https://downloads.chef.io/chef-server からダウンロードできます。

王国への鍵

(訳注: 「Keys To The Kingdom」は歌もしくは書籍のタイトル)

このリリースでは、UserとClientのための複数キーの格納と管理をサポートします。UserもしくはClientとして、前述のエージェントのあらゆる有効なキーによって認証できます。リクエストを受け取ると、サーバは単純にUserとClientのすべての有効なキーに対してリクエストを確認します。サーバはUserやClientが同じ名前でリクエストを発しても知ることができ、キーはUserやClientを正しく指し示すので、長らく懸案だったUserとClientの曖昧性のバグを排除できます。

この結果、キーローテーションを行えるようになりました: UserやClientに対して第二のキーを追加し、キーがあるどこへでも古いキーの代わりとしてデプロイし、古いキーを削除します。すべてのキーはそれぞれを区別する助けとなる名前を持っています。

加えて、キーに満了期限を設定できるようになりました。これは任意です。もしキーが満了期限を過ぎたら、UserやClientの有効なキーのリストに書き込むときにサーバによって単純に除外されます。キーが満了期限を持っていなければ、削除されるまで有効な認証となります。

このすべての完全なAPIサポートについて現在作業中ですが、今からでもchef-server-ctlを通してUserやClientのキーのリスト、追加、削除が行えます。詳しくはドキュメントを参照してください。

うまい話には裏があるんじゃないの?

API後方互換性

現在のAPIに対して完全な後方互換性を持ちます。もしたった1つのキーだけを使いたいのであれば、現在行っているのと同じようにAPIに対してPOSTやPUTでUserとClientのキーの更新を行うことができます。UserとClientに対してGETすると、既存のUserとClientのAPIエンドポイントを用いている限り、依然として単一のキーを返します。

水面下でどのような動きをしているかというと、キーとkey_nameのデフォルトとして設定されたものがClientとUser APIを通して返されます。それらのAPIエンドポイントに対するPOSTとPUTは単純にUserやClientのデフォルトキーを更新し、既存のUserやClientのAPIエンドポイントを指すことで元の機能を提供します。

これより、もしChef Serverアドオンを使っているならデフォルトキーは削除しないことを推奨します。次項を見てください。

アドオンの互換性

デフォルトキーを削除したり追加キーを追加したら、Chef ReportingとChef Pushは問題を起こします。Chef ReportingとChef Pushは非デフォルトキーについての認証をまだサポートしていません。ReportingとPushの複数キーのサポートはAPIを拡張することで作業中です。

このリリースでのその他の事項

改善

  • James FitzGibbonによる、nginx['log_x_forwarded_for']が真の場合、nginxのログにリモートアドレスの代わりにX-Forwarded-Forヘッダを利用するような機能の追加
  • James Le Cuirotによる、systemdの初期サポート
  • あらゆるchef-server-ctlコマンドを実行した際に常に表示されるffi-yajlの警告の問題を修正
  • lua関連の変更後に、HAインストールのフロントエンドのnginxを再起動するように

バグ修正

  • DRBDマウント試行を諦める際に、無限ループに入らず、エラーを記録して終了するように
  • 配列に対するSearch結果が、以前はすべての優先レベルの値にマッチしていたバグを修正
  • Nginxログはopscodeユーザとしてローテート
  • PERL5LIB環境変数によって引き起こされていたインストールエラーの修正
  • lua関連の設定変更時にnginxを正しく再起動
  • chef-server-ctlがUserとOrg関連のコマンドでエラーが発生した際に0以外の終了コードを返すように
  • chef12-upgrade-downloadコマンドの--download-onlyオプションに、オプション名の衝突回避のために-Dを用いるように
  • UserとClientのリクエストの曖昧性の排除

より早く価値を得られるようにするための約束

この機能が完全なAPIサポートをまだ持っていない間でも、このリリースでは複数キーを管理してキーローテーションを機能させることができます。すべての付加機能が出揃うのを待たせる代わりに、使ってみたいであろう機能のうち、最低限使える機能から提供しています。これらの機能の改善を続けていくことを約束します。是非ローテーションを試してみてください!

新規CTA