翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クックブックリポジトリ
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
カスタムクックブックはオンラインリポジトリ (.zip ファイルのようなアーカイブまたは Git のような ソース管理マネージャー) に保存する必要があります。スタックに割り当てることのできるカスタムクックブックは 1 つのみですが、リポジトリには任意の数のクックブックを保存できます。クックブックをインストールまたは更新すると、 AWS OpsWorks スタックは各スタックのインスタンスのローカルキャッシュにリポジトリ全体をインストールします。たとえば、インスタンスで 1 つ以上のレシピを実行する必要がある場合、ローカルキャッシュのコードが使用されます。
以下では、タイプ別にクックブックリポジトリを構築する方法について説明します。図で斜体で示されているテキストは、リポジトリ名またはアーカイブ名を含むユーザー定義ディレクトリとファイル名を表します。
- ソース管理マネージャー
-
AWS OpsWorks スタックでは、次のソースコントロールマネージャーがサポートされています。
-
Linux スタック – Git と Subversion
-
Windows スタック – Git
以下に示しているのは、必要なディレクトリとファイル構造です。
-
クックブックのディレクトリはすべてトップレベルにあることが必要です。
-
- アーカイブ
-
AWS OpsWorks スタックでは、次のアーカイブがサポートされています。
-
Linux スタック – Amazon S3 またはウェブサイト ( アーカイブ) に保存されている zip、gzip、bzip2、または tarball ファイル。HTTP
AWS OpsWorks スタックは非圧縮 tarball をサポートしていません。
-
Windows スタック – Amazon S3 に保存されている zip と tgz (gzip で圧縮された tar) ファイル。
以下では、実行しているのが Linux スタックであるか Windows スタックであるかに応じて、必要なディレクトリとファイルの構造を示しています。クックブック構造はSCMリポジトリの場合と同じであるため、省略記号 (...) で表されます。
-
Linux スタック – クックブックディレクトリはルートディレクトリにあることが必要です。
-
Windows スタック – クックブックはアーカイブのトップレベルであることが必要です。
クックブックが 1 つしかない場合は、必要に応じてクックブックディレクトリを省略し、クックブックファイルをトップレベルに配置できます。その場合、 AWS OpsWorks スタックによって metadata.rb からクックブック名が取得されます。
-
各クックブックディレクトリには、次に示す標準ディレクトリとファイルが少なくとも 1 つ (通常はすべて)、標準の名前で含まれています。
-
attributes
– クックブックの属性ファイルです。 -
recipes
– クックブックのレシピファイルです。 -
templates
– クックブックのテンプレートファイルです。 -
other
– 定義や仕様など、他のファイルタイプを含むオプションのユーザー定義ディレクトリ。 -
metadata.rb
– クックブックのメタデータです。Chef 11.10 以降では、レシピが他のクックブックに依存している場合、クックブックの
depends
ファイルに、対応するmetadata.rb
ステートメントを含める必要があります。たとえば、クックブックにinclude_recipe anothercookbook::somerecipe
のようなステートメントを持つレシピが含まれている場合は、クックブックのmetadata.rb
ファイルにdepends "anothercookbook"
という行が含まれている必要があります。詳細については、「クックブックのメタデータについて」を参照してください。
テンプレートは、templates
ディレクトリのサブディレクトリに保存されている必要があります。templates ディレクトリには、少なくとも 1 つの、またはオプションで複数のサブディレクトリが含まれています。それらのサブディレクトリにも同様に、サブディレクトリが含まれている場合があります。
-
テンプレートには、通常、
default
というサブディレクトリがあります。ここには、Chef がデフォルトで使用するテンプレートファイルが含まれています。 -
other は、オペレーティングシステムに固有のテンプレート用に使用できる、オプションのサブディレクトリを表します。
-
Chef は、「File Specificity
」で説明する命名規則に従って、適切なサブディレクトリのテンプレートを自動的に使用します。例えば、Linux および オペレーティングシステムの場合、 amazon
amazon またはubuntu
ubuntu という名前のサブディレクトリに、それぞれのオペレーティングシステム固有のテンプレートを保存できます。
カスタムクックブックの処理方法の詳細は、使用するリポジトリのタイプによって異なります。
アーカイブを使用するには
-
前のセクションで示したフォルダ構造を使用して、クックブックを実装します。
-
圧縮されたアーカイブを作成し、Amazon S3 バケットやウェブサイトにアップロードします。
クックブックを更新した場合、新しいアーカイブファイルを作成してアップロードする必要があります。Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、「S3 バケットを空にする方法」または「S3 バケットを削除する方法」を参照してください。
を使用するには SCM
-
先ほど示した構造を使用して、Git または Subversion リポジトリを設定します。
-
必要に応じて、リポジトリのバージョン管理機能を使用して複数のブランチまたはバージョンを実装します。
クックブックを更新する場合は、新しいブランチで更新し、新しいバージョンを使用する OpsWorks ように に指示できます。特定のタグ付きバージョンを指定することもできます。詳細については、「カスタムクックブックリポジトリの指定」を参照してください。
カスタムクックブックのインストール では、 AWS OpsWorks スタックに クックブックリポジトリをスタックのインスタンスにインストールさせる方法について説明します。
重要
リポジトリ内の既存のクックブックを更新したら、 update_cookbooks
スタックコマンドを実行して、各オンラインインスタンスのローカルキャッシュを更新するように AWS OpsWorks スタックに指示する必要があります。詳細については、「スタックコマンドの実行」を参照してください。