[和訳] ChefDK 0.10.0 リリース #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は ChefDK 0.10.0 Released (2015/11/09) の和訳です。
こんにちは。本日 ChefDK 0.10.0 をリリースいたしました。ダウンロードページよりご利用いただけます。このリリースでは以下の互換性が新しく追加、アップデートされました。
- InSpec 0.9.2
- Kitchen InSpec 0.9.0
- Knife Windows 1.1.1
- Chef Provisioning 1.5.0
- Chef Provisioning AWS 1.6.0
リリースノートの完全版は Github にてご覧になれますが、こちらにも同じものを記載いたしました。
InSpec
Chef InSpec は11月3日にリリースされました。只今 ChefDK にこのツールを導入中です。Github の README ではプロジェクトの概要と、開発者が執筆する有益なブログ (訳注: 和訳) もご覧になれます。
InSpec とインターフェイス接続するための主な手段は、inspec というコマンドラインツールを使うことです。ChefDK との統合にあたって現在最も留意されたい点は、ChefDK をインストールする際、inspec ツールが初期設定では PATH に追加されていないということです。Inspec ツールを使用するためには、以下のいずれかを行ってください。
- 修正: この投稿をした後、ある方が指摘してくださったのですが、chef shell-init を実行している場合、chef exec を inspec 実行可能ファイルの先頭に追加する必要はありません。Adamさん、ありがとうございます!
すべての inspec 呼び出しで chef exec を先頭に追加してください。たとえば、ガイドに従って、ローカル inspec テストを実行するためには chef exec inspec exec test.rb のようにします。 - 手動で PATH に実行可能ファイルを追加してください。Linux や OSX システムでは、これは /opt/chefdk/embedded/bin に、Windows では C:\opscode\chefdk\embedded\bin に位置しています。
パスの変更は一時的なものです。今後の ChefDK リリースでは、デフォルトで PATH に inspec を含むよう計画しています。
Kitchen-InSpec
Kitchen-InSpec は InSpec を用いた新しい Test Kitchen の Verifier です。この Verifier は Test Kitchen バージョン 1.4 以上にのみ対応しています。また、Test Kitchen 1.4 を用いる Test Kitchen のプラグインでのみ動作します。Test Kitchen 1.4 を用いるドライバの例としては、Vagrant プラグインや EC2 プラグインがあります。
InSpec を用いた Cookbook がどのようなものであるかの例として、InSpec を使ったこの .kitchen.yml と テスト を見てください。
Knife Windows 1.0 の改善
今回の ChefDK のリリースでは Knife-Windows 1.1.1 を同梱しました。ChefDK に同梱する最初の v1 リリースです。1.0.0 および 1.1.0 機能の詳細をすべてご覧になりたい場合はこちらのリリースノートをご参照ください。
日常の Chef 開発ワークフローに Knife-Windows を利用されている方は、こちらで重大な変更とハイライトをご確認ください。
重大な変更点
- Negotiate はデフォルトの認証プロトコルです。このリリース以前では、デフォルト認証プロトコルは --winrm-user オプションのフォーマットに依存していました。このオプションで domain\user のフォーマットでない限り、basic 認証プロトコルが想定されています。以前のリリースの挙動に切り戻す、あるいは knife-windows に強制的に basic のような特定の認証プロトコルを使用させるには、--winrm-authentication-protocolオプションをご利用ください。
- デフォルト WinRM ポートは通信に依存します。非 SSL 接続の場合、デフォルトのポートは 5985 のままですが、SSL を用いる場合は 5986 がデフォルトとなります。
- Kerberos Keytab ショートオプションは今回のアップデートで --identity-file オプションとの衝突を修正するため -T となりました。
SSL を用いた WinRM のセットアップの簡易化
SSL を用いた WinRM 通信の設定は一筋縄ではいきません。証明書は両サイドで構成される必要があり、ファイアウォールルールが追加され、WinRM リスナーが作成されなければなりません。この Knife-Windows リリースは新しい knife コマンドを追加して、これらのタスクを自動化するようにしました。
- knife windows cert generate は WinRM リスナーの構成と通信認証のための証明書と関連する公開鍵ファイルを作成します。
- knife windows cert install は、cert generate サブコマンドによって作成されたような証明書を Windows 証明書ストアにインストールします。
- knife windows listener create は WinRM SSL リスナーを Windows システム上に作成します。
WinRM 構成の検証
新しいサブコマンド knife wsman test はリモートシステム上の winrm 機能を検証します。
新しい Bootstrap オプション
- --hint は bootstrap において Ohai ヒントを作成します。
- --bootstrap-install-command は Chef Client をインストールするための代わりのコマンドを使えるようにします。
- --install-as-service は Chef Client が bootstrap において Windows サービスとしてインストールされるようにします。
- --msi_url は Chef Client インストールパッケージへの代替の URL を提供します。
Validatorless ブートストラッピング
あれ、validator がない! ---- はい、そうなのです。最初はコアの Chef Client で可能でしたが、今では knife windows ブートストラップでも可能になりました。
WinRM の プロキシサポート
knife winrm と knife bootstrap windows winrm のサブコマンドは WinRM 通信の際、knife.rb の http_proxy に設定されたプロキシサーバを遵守するようになりました。
chef generate コマンドは Policyfile の代わりに Berksfile をデフォルトで利用
ChefDK 0.9.0 では、chef generate cookbook のデフォルト動作を変更して、Berksfiles ではなく Policyfiles を作成していました。私どものトレーニングマテリアルやチュートリアルがこの変更に合わせてアップデートされていなかったため、動作を元に戻しました。現在も -P オプションを chef generate cookbook に渡すことで、Policyfiles で cookbook を作成することができます。
また、chef generate repo -P を実行することで、Policyfiles に沿った Chef Repo を作成できます。