詳細: このウォークスルーで使用されているクックブックの学習 - AWS OpsWorks

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

詳細: このウォークスルーで使用されているクックブックの学習

重要

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

このトピックでは、このウォークスルー用に AWS OpsWorks スタックで使用されているクックブックについて説明します。

クックブックは Chef の概念です。クックブックは、レシピ、属性値、ファイル、テンプレート、ライブラリ、定義、カスタムリソースなどの設定情報を含むアーカイブファイルです。レシピは、Chef の概念でもあります。レシピは、Ruby 言語の構文で書かれた手順であり、使用するリソースと、それらのリソースを適用する順序を指定します 詳細については、「Learn Chef」(Chef の説明) ウェブサイトで 「About Cookbooks」(クックブックについて) および「About Recipes」(レシピについて)] をご覧ください。

このウォークスルーで使用されているクックブックの内容を表示するには、のopsworks-linux-demo-cookbooks-nodejs.tar.gz ファイルの内容をローカルワークステーションの空のディレクトリに展開します (クックブックをデプロイしたインスタンスにログインし、/var/chef/cookbooks ディレクトリの内容を確認することもできます。)

cookbooks/nodejs_demo/recipes ディレクトリの default.rb ファイルは、クックブックがそのコードを実行する場所です。

app = search(:aws_opsworks_app).first app_path = "/srv/#{app['shortname']}" package "git" do options "--force-yes" if node["platform"] == "ubuntu" && node["platform_version"] == "18.04" end application app_path do javascript "4" environment.update("PORT" => "80") git app_path do repository app["app_source"]["url"] revision app["app_source"]["revision"] end link "#{app_path}/server.js" do to "#{app_path}/index.js" end npm_install npm_start end

ファイルで実行される操作は次のとおりです。

  • search(:aws_opsworks_app).first は Chef 検索を使用して、最終的にインスタンスにデプロイされるアプリケーションについての情報を検索します。この情報には、アプリケーションの短縮名、ソースリポジトリの詳細などの設定が含まれます。このウォークスルーでデプロイされたのは 1 つのアプリケーションのみであるため、Chef 検索ではインスタンスの aws_opsworks_app 検索インデックス内の情報の最初の項目から、これらの設定を取得します。インスタンスを起動するたびに、AWS OpsWorks スタックはこの情報やその他の関連情報をインスタンス自体にデータバッグのセットとして保存します。ユーザーは Chef 検索を通じてデータバッグのコンテンツを取得します。このレシピにこれらの設定をハードコードすることができますが、データバッグと Chef 検索を使用するのが、より堅牢な方法です。データバッグの詳細については、Chef の詳細ウェブサイトで「AWS OpsWorks スタックのデータバッグのリファレンス」を参照してください。[Learn Chef] (Chef の説明) ウェブサイトで [About Data Bags] (データバッグについて) も参照してください。Chef の検索の詳細については、[Learn Chef] (Chef の説明) ウェブサイトで [About Search] (検索について) を参照してください。

  • package リソースはインスタンスに Git をインストールします。

  • application リソースはウェブアプリケーションを記述し、デプロイします。

    • javascript は、インストールする JavaScript ランタイムのバージョンです。

    • environment は環境変数を設定します。

    • git は指定されたリポジトリとブランチからソースコードを取得します。

    • app_path はリポジトリをクローン化するパスです。インスタンス上にパスが存在しない場合、AWS OpsWorks スタックによって作成されます。

    • link はシンボリックリンクを作成します。

    • npm_install は、Node.js 用のデフォルトのパッケージマネージャーであるノードパッケージマネージャをインストールします。

    • npm_start は Node.js を実行します。

AWS OpsWorks スタックによって、このウォークスルーで使用するクックブックが作成されましたが、独自のクックブックを作成することができます。この方法の詳細は、使用開始: クックブックを参照してください。また、「Learn Chef (Chef の説明) ウェブサイトで「About Cookbooks」(クックブックについて)、「About Recipes」(レシピについて)、および「Learn the Chef Basics on Ubuntu」(Ubuntu でシェフの基礎を学ぶ) を、「Getting started with Chef」(Chef の使用開始)ウェブサイトでは「First steps with Chef」(Chef の最初のステップ) にある「最初のシェフクックブック」セクションもご覧ください。