はじめにChefDKは「Chefを使い始めるのに必要なすべてを含む」こと、開発者のワークステーションを設定する手順を大幅に簡単にすることを意図しています。Omnibusパッケージと明らかに似ているにも関わらず、ChefDKユーザは、特にWindowsにおいて、多くの問題や矛盾点を見つけています。本項の目的は、ChefDKがどのように動作するかのよりよい理解と、よくある落とし穴を避けてWindowsにワークステーションを設定する方法を提供することです。Omnibusパッケージの違いAppBundlerAppbundlerはChefDKで用いている新しい技術で、実行ファイル内にGemバージョン依存を埋め込むものです。execと同じような機能を提供していますが、実行時にバージョン制約を解決する必要がないため、より早く読み込めます。Appbundlerは、ChefDK内には同じgemの2つのバージョンを含めておく必要があります。Server自身によって必要とされています。appbundleされた実行ファイルはChefDKのbinディレクトリ、MacやLinuxでは/opt/chefdk/binに、WindowsではC:\opscode\chefdk\binにインストールされます。chefコマンドchefコマンドはChefDKユーザに多くの有用な機能を提供します。execは、ChefDKのembedded/binディレクトリやユーザが独自にインストールしたgemから、実行ファイルを適切に呼び出せます。gemは、ChefDK内で利用するためのRubyGemsをインストールするためのgemコマンドのラッパーです。/opt/chefdkではなく、ユーザの~/.chefdkディレクトリにインストールされることに注意してください。execを用いずに直接利用するための環境変数を提供します。verifyは、ChefDKのすべてのコンポーネントが正しくインストールされているかどうかを検証します。generateは、Cookbook、Cookbookのサブコンポーネント(Recipe、Attribute、LWRPなど)や完全なRepoディレクトリを生成します。ポリシーファイル関連を含んだ、より詳しい情報はドキュメントを参照してください。0.3.2を使ってみよう:ポリシーファイル編」も参照してください。ChefDKにおけるPATHの重要性インストール時、ChefDKは/opt/chefdk/binやC:\opscode\chefdk\bin内の実行ファイルのみをユーザに見せています。これらは前述した通りAppbundleされた実行ファイルです。execを使うことをお勧めします。Omnibusユーザは通常はembedded/binをPATHに追加し、ChefDKのコマンドのすべてをコマンドラインから直接実行したいと思うでしょう。shell-initを使うことです。残念ながら、Windowsユーザのためのshell-initサポートはちょっとした混乱やPATH中のbinディレクトリの順番が間違っているというバグレポートのためにまだ作業中です。その他の共通の問題として、ChefとChefDKの両方のbinディレクトリがユーザのパス中に存在していることがあります。Chefの上位パッケージなので、ユーザは両方ではなくどちらか1つをインストールすべきです。ChefDKをインストールする前に、ワークステーションからchef-clientをアンインストールしてください。execを完全に使わないようにするために、embedded\binをPATHに追加する正しい方法は、次のようにPATH、GEM_ROOT、GEM_HOME、GEM_PATH環境変数を設定することです。2.0.0を含んでいます。ChefDKがより新しいRubyに更新した場合、この2.0.0をその新しいRubyバージョンに書き換える必要があります。この変更を永続化するには、bashのプロファイルと同じように、Powershellの$profileに先の内容を追加します。$profileの位置は次のように決めることができます。about_Profilesを参照してください。実行する必要があります。私達が公式にサポートして推奨しているWindowsシェルはPowershellのみです。Bashは自己責任で使ってください。Windowsには、2つの有名で本質的に異なるBash実装であるcygwinとmsysがあります。ChefでPATH表記の互換性があるという点で、Chefユーザにとってよりよい選択でしょう。shell-initはいくつかの理由により、Windows用の有用な環境変数を提供していません。succeeded.Windowsにおける既知の大きな問題スペースを含むパスにGemのネイティブエクステンションがインストールできない(https://github.com/rubygems/rubygems/issues/523)。これはChefDKだけの問題ではなく、次のようなことをしたユーザに影響のある、RubyGemsとWindowsの一般的な問題です。Files」のようなスペースを含むパスやc:\opscode以外のどこかにインストールしようとした。Documents\src\cookbook」のようなスペースを含むパスの他のプロジェクトにインストールしようとした。Serverと通信しようとしたBerkshelfがSSLエラーを起こした場合、次をRubyワンライナーを実行してSSL検証を無効化してください。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。