

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

# 詳細: このウォークスルーで使用されているクックブックの学習
<a name="gettingstarted-linux-explore-cookbook"></a>

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

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

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

このウォークスルーで使用されているクックブックの内容を表示するには、[のopsworks-linux-demo-cookbooks-nodejs.tar.gz](https://s3.amazonaws.com/opsworks-demo-assets/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` 検索インデックス内の情報の最初の項目から、これらの設定を取得します。インスタンスが起動されるたびに、 OpsWorks Stacks はこの情報およびその他の関連情報をインスタンス自体のデータバッグのセットとして保存し、Chef 検索を通じてデータバッグの内容を取得します。このレシピにこれらの設定をハードコードすることができますが、データバッグと Chef 検索を使用するのが、より堅牢な方法です。データバッグの詳細については、Chef の詳細ウェブサイトで「[OpsWorks スタックデータバッグリファレンス](data-bags.md)」を参照してください。[[Learn Chef]](https://learn.chef.io/) (Chef の説明) ウェブサイトで [[About Data Bags]](https://docs.chef.io/data_bags.html) (データバッグについて) も参照してください。Chef の検索の詳細については、[[Learn Chef]](https://learn.chef.io/) (Chef の説明) ウェブサイトで [[About Search]](https://docs.chef.io/chef_search.html) (検索について) を参照してください。
+ `package` リソースはインスタンスに Git をインストールします。
+ `application` リソースはウェブアプリケーションを記述し、デプロイします。
  + `javascript` は、インストールする JavaScript ランタイムのバージョンです。
  + `environment` は環境変数を設定します。
  + `git` は指定されたリポジトリとブランチからソースコードを取得します。
  + `app_path` はリポジトリをクローン化するパスです。パスがインスタンスに存在しない場合、 OpsWorks スタックによって作成されます。
  + `link` はシンボリックリンクを作成します。
  + `npm_install` は、Node.js 用のデフォルトのパッケージマネージャーであるノードパッケージマネージャをインストールします。
  + `npm_start` は Node.js を実行します。

 OpsWorks スタックはこのウォークスルーに使用されるクックブックを作成しましたが、独自のクックブックを作成できます。この方法の詳細は、「[使用開始: クックブック](gettingstarted-cookbooks.md)」を参照してください。また、[「Learn Chef](https://docs.chef.io/cookbooks.html) (Chef の説明) ウェブサイトで[「About Cookbooks」](https://docs.chef.io/recipes.html)(クックブックについて)、[「About Recipes」](https://learn.chef.io/modules/learn-the-basics/ubuntu#/)(レシピについて)、および[「Learn the Chef Basics on Ubuntu」](https://learn.chef.io/)(Ubuntu でシェフの基礎を学ぶ) を、[「Getting started with Chef」](http://gettingstartedwithchef.com/first-steps-with-chef.html)(Chef の使用開始)ウェブサイトでは[「First steps with Chef」](http://gettingstartedwithchef.com/)(Chef の最初のステップ) にある「最初のシェフクックブック」セクションもご覧ください。