ステップ 16: クックブックを更新してコミュニティクックブックを使用する - AWS OpsWorks

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

ステップ 16: クックブックを更新してコミュニティクックブックを使用する

重要

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

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

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

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

クックブックの依存関係を宣言するには
  1. ローカルワークステーションの opsworks_cookbook_demo ディレクトリで、次の行を metadata.rb ファイルの末尾に追加します。

    depends "application", "5.0.0"

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

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

    berks init .

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

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

    cookbook "application", "5.0.0"

    これにより、ユーザーが application cookbook version 5.0.0 の使用を希望している事実が Berkshelf に伝えられ、Berkshelf は、Chef Supermarket から該当バージョンをダウンロードします。

  4. 端末またはコマンドプロンプトで、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 にインストールします。(もちろん、パッケージがインスタンスでパッケージマネージャーに対して容易に利用できる限り、他のパッケージ名に置き換えることができます)。

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

    berks package

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

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

  4. ステップ 5: インスタンスのクックブックを更新し、レシピを実行する」の手順に従って、インスタンスのクックブックを更新し、レシピを実行します。「レシピを実行するには」の手順の [Recipes to execute] に、「opsworks_cookbook_demo::dependencies_demo」と入力します。

  5. レシピを実行した後は、インスタンスにログインし、コマンドプロンプトで「nethack」と入力してプレイを開始できます (ゲームの詳細については、NetHack「」およびNetHack「 ガイドブック」を参照してください。)

次のステップ では、このチュートリアルに使用した AWS リソースをクリーンアップできます。このステップは任意です。 AWS OpsWorks スタックの詳細については、これらの AWS リソースを引き続き使用することをお勧めします。ただし、これらの AWS リソースを に保持すると、 AWS アカウントに継続的な料金が発生する可能性があります。これらの AWS リソースを後で使用できるように維持したい場合は、このチュートリアルを完了し、「」にスキップできます次のステップ