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

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

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

重要

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

最後に、クックブックを更新して、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 の詳細を学習し続けるための リソース AWS OpsWorks スタック。ただし、これらを AWS のリソースでは、 に継続的に課金される場合があります。 AWS アカウント。これらを保持する場合 AWS 後で使用するために リソースをめぐって、このチュートリアルはこれで完了です。「」にスキップできます次のステップ