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