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

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

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

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS OpsWorks StacksAWS Systems Manager アプリケーションマネージャへのアプリケーションの移行 を参照してください。

最後に、クックブックを更新して、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 Guidebook を参照してください)。

次のステップでは、このウォークスルーに使用した AWS リソースをクリーンアップできます。このステップは任意です。AWS OpsWorks スタックの詳細について学習を続ける際に、これらの AWS リソースの使用を継続してもかまいません。ただし、これらの AWS リソースを維持すると、AWS アカウントで継続的に料金が発生する可能性があります。AWS リソースを後で使用できるように維持する場合は、このウォークスルーを完了したので、省略して「次のステップ」に進むことができます。