

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ステップ 16: クックブックを更新してコミュニティクックブックを使用する
<a name="gettingstarted-cookbooks-community-cookbooks"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

最後に、クックブックを更新して、Chef コミュニティで提供された外部のクックブックの機能を使用します。このウォークスルーに使用する外部のクックブックは、外部の Chef クックブックにアクセスするための一般的な場所である [Chef Supermarket](https://supermarket.chef.io/) を通じて利用できます。この外部クックブックでは、「[ステップ 4: クックブックを更新してパッケージをインストールする](gettingstarted-cookbooks-install-package.md)」で行ったようにアプリケーションをダウンロードしてインストールできるカスタムリソースが提供されます。ただし、このリソースはパッケージに加えてウェブアプリケーションや他の種類のアプリケーションをインストールできます。

クックブックが別のクックブックに依存している場合、他のクックブックへの依存関係を指定する必要があります。クックブックの依存関係を宣言し、管理するには、Berkshelf と呼ばれるツールを使用することをお勧めします。Berkshelf をお客様のローカルワークステーションにインストールする方法の詳細については、Chef ウェブサイトの [About Berkshelf](https://docs.chef.io/berkshelf.html) を参照してください。

Berkshelf をインストールしたら、以下の手順に従ってクックブックの依存関係を宣言し、外部のクックブックでリソースを呼び出すレシピを作成します。

**クックブックの依存関係を宣言するには**

1. ローカルワークステーションの `opsworks_cookbook_demo` ディレクトリで、次の行を `metadata.rb` ファイルの末尾に追加します。

   ```
   depends "application", "5.0.0"
   ```

   これにより、`application` version 5.0.0 という名前のクックブックで依存関係が宣言されます。

1. `opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。コマンドの最後のピリオドは意図的なものです。

   ```
   berks init .
   ```

   Berkshelf により、より高度なシナリオで後から使用できる多くのフォルダとファイルが作成されます。このウォークスルーで必要なファイルは、`Berksfile` という名前のファイルのみです。

1. `Berksfile` ファイルの末尾に次の行を追加します。

   ```
   cookbook "application", "5.0.0"
   ```

   これにより、ユーザーが [application cookbook version 5.0.0](https://supermarket.chef.io/cookbooks/application/versions/5.0.0) の使用を希望している事実が Berkshelf に伝えられ、Berkshelf は、Chef Supermarket から該当バージョンをダウンロードします。

1. 端末またはコマンドプロンプトで、`opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。

   ```
   berks install
   ```

   Berkshelf が、クックブックとアプリケーションクックブック両方について、依存関係のリストを作成します。Berkshelf は、次の手順でこの依存関係リストを使用します。

**インスタンスのクックブックを更新し、新しいレシピを実行するには**

1. `recipes` ディレクトリにある `opsworks_cookbook_demo` サブディレクトリで、以下のコードを含む `dependencies_demo.rb` という名前のファイルを作成します。

   ```
   application "Install NetHack" do
     package "nethack.x86_64"
   end
   ```

   このレシピは、アプリケーションクックブックのアプリケーションリソースに基づいて、人気のあるテキストベースの冒険ゲーム NetHack をインスタンスにインストールします (もちろん、パッケージがインスタンスでパッケージマネージャーに対して容易に利用できる限り、他のパッケージ名に置き換えることができます)。

1. `opsworks_cookbook_demo` ディレクトリのルートから次のコマンドを実行します。

   ```
   berks package
   ```

   Berkshelf は前の手順の依存関係のリストを使用して、`cookbooks-timestamp.tar.gz` という名前のファイルを作成します。これには、クックブックの依存関係クックブックを含めて、`opsworks_cookbook_demo` ディレクトリとその更新されたコンテンツが含まれます。このファイル `opsworks_cookbook_demo.tar.gz` の名前を変更します。

1. 更新済みで名前を変更した `opsworks_cookbook_demo.tar.gz` ファイルを S3 バケットにアップロードします。

1. 「[ステップ 5: インスタンスのクックブックを更新し、レシピを実行する](gettingstarted-cookbooks-copy-cookbook.md)」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [**Recipes to execute**] に、「**opsworks\$1cookbook\$1demo::dependencies\$1demo**」と入力します。

1. レシピを実行した後は、インスタンスにログインし、コマンドプロンプトで「**nethack**」と入力してプレイを開始できます (ゲームに関する詳細については、「[NetHack](https://en.wikipedia.org/wiki/NetHack)」および [NetHack Guidebook](http://www.nethack.org/v343/Guidebook.html) を参照してください)。

[次のステップ](gettingstarted-cookbooks-clean-up.md)では、このウォークスルーに使用した AWS リソースをクリーンアップできます。このステップは任意です。 OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。ただし、これらの AWS リソースを周囲に保持すると、 AWS アカウントに継続的な料金が発生する可能性があります。これらの AWS リソースを後で使用するために保持する場合は、このウォークスルーを完了し、「」に進むことができます[次のステップ](gettingstarted-cookbooks-next-steps.md)。