

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

# クックブック 101
<a name="cookbooks-101"></a>

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

通常、本番稼働レベルの OpsWorks スタックスタックにはある程度の[カスタマイズ](customizing.md)が必要です。これは多くの場合、1 つ以上のレシピ、属性ファイル、またはテンプレートファイルを含むカスタム Chef クックブックを実装することを意味します。このトピックは、 OpsWorks スタック用のクックブックの実装に関するチュートリアルの概要です。

 OpsWorks スタックがクックブックを使用する方法の詳細については、「」を参照してください[クックブックとレシピ](workingcookbook.md)。Chef レシピを実装してテストする方法の詳細については、「[Chef を利用したテスト中心のインフラストラクチャ (第 2 版)」](https://www.amazon.com/Test-Driven-Infrastructure-Chef-Behavior-Driven-Development/dp/1449372201/ref=sr_1_fkmr0_1?ie=UTF8&qid=1405556803&sr=8-1-fkmr0&keywords=Test-Driven+Infrastructure+with+Chef%2C+2nd+Edition)を参照してください。

チュートリアルの例は、2 つのセクションに分割されます。
+  「[クックブックの基本](cookbooks-101-basics.md)」では、Chef に慣れていないユーザー向けの例となるウォークスルーがまとめられています。Chef に慣れたユーザーは、このセクションを省略できます。

  この例では、パッケージのインストールやディレクトリの作成など、一般的なタスクを実行するクックブックを実装するための基本方法を説明します。プロセスを簡素化するために、仮想マシンのローカルに置かれた例の多くは [Vagrant](http://docs.vagrantup.com/v2/) と [Test Kitchen](http://kitchen.ci/) という 2 つの便利なツールを使用して実行します。「[クックブックの基本](cookbooks-101-basics.md)」を開始する前に、「[Vagrant と Test Kitchen](#cookbooks-101-tools)」を読んで、この 2 つのツールのインストール方法と使用方法を学習してください。Test Kitchen ではまだ Windows がサポートされていないため、例はすべて Linux に当てはまるものです。それらの例を Windows に当てはめる方法は注意に示しています。
+ [OpsWorks スタック用のクックブックの実装](cookbooks-101-opsworks.md) では、Windows OpsWorks スタック用を含め、 スタック用のレシピを実装する方法について説明します。

  また、Berkshelfを使って外部のクックブックを管理する方法など、より高度な内容も含まれています。「[クックブックの基本](cookbooks-101-basics.md)」で示している例などは、Chef の使用経験がないユーザー向けに作成されています。ただし OpsWorks 、 スタックの動作は Chef サーバーと少し異なるため、経験豊富な Chef ユーザーには、少なくともこのセクションを読むことをお勧めします。



## Vagrant と Test Kitchen
<a name="cookbooks-101-tools"></a>

Linux インスタンス用のレシピを使用する場合、Vagrant と Test Kitchen は、学習や初期の開発およびテストに非常に便利なツールです。ここでは、Vagrant と Test Kitchen について簡単に説明し、インストール方法を示します。さらに、このツールの基本的な使用方法を理解し習得するためのウォークスルーも含まれています。Vagrant では Windows がサポートされていますが、Test Kitchen ではサポートされていません。そのため、Linux の例のみをこれらのツール用に示しています。



### Vagrant
<a name="cookbooks-101-tools-vagrant"></a>

[Vagrant](http://docs.vagrantup.com/v2/) は、仮想マシンでコードを実行しテストするための一貫した環境を実現します。Vagrant ボックスと呼ばれるさまざまな環境をサポートしており、それぞれが構成されたオペレーティングシステムを表します。 OpsWorks スタックの場合、対象環境は Ubuntu、Amazon、または Red Hat Enterprise Linux (RHEL) ディストリビューションに基づいているため、例では主に という名前の Vagrant ボックスを使用します`opscode-ubuntu-12.04`。

Vagrant は Linux、Windows、および Macintosh の各システムに対応しているため、好みのワークステーションを使用して、任意のサポート対象オペレーティングシステムにレシピを実装し、テストすることができます。この章の例は Ubuntu Linux システムで作成されていますが、その手順を Windows システムや Macintosh システム用に読み替えるのは簡単です。

基本的に、Vagrant は仮想化プロバイダー用のラッパーです。ほとんどの例では、[VirtualBox](https://www.virtualbox.org/) プロバイダーを利用しています。VirtualBox は、Linux、Windows、および Macintosh の各システムで無料で利用することができます。システムに VirtualBox がまだインストールされていない場合、Vagrant のウォークスルーで VirtualBox のインストール手順を見ることができます。VirtualBox では Ubuntu ベースの環境を実行できますが、Amazon Linux を使用できるのは Amazon EC2 インスタンスのみであることに注意してください。ただし、VirtualBox 上の CentOS など、同様のオペレーティングシステムを実行できるため、初期段階の開発とテストに役立ちます。

その他のプロバイダーの詳細については、[Vagrant](http://docs.vagrantup.com/v2/) のドキュメントを参照してください。特に、`vagrant-aws` プラグインプロバイダーを使用すると、Vagrant を Amazon EC2 インスタンスで使用できるようになります。このプロバイダーは、Amazon EC2 インスタンスでしか使用できない Amazon Linux でレシピをテストする際に特に役立ちます。`vagrant-aws` プロバイダーは無料ですが、AWS アカウントが必要です。さらに、使用する AWS リソースの費用を支払う必要があります。

次に、Vagrant の「[使用開始ウォークスルー](http://docs.vagrantup.com/v2/getting-started/index.html)」を参照してください。このウォークスルーでは、ワークステーションに Vagrant をインストールする方法と、Vagrant の基本的な使用方法を見ることができます。この章の例では Git リポジトリを使用しないため、必要に応じて、ウォークスルーの関連する部分を省略してもかまいません。

### Test Kitchen
<a name="cookbooks-101-tools-test-kitchen"></a>

[Test Kitchen](http://kitchen.ci/) は、Vagrant におけるクックブックの実行とテストのプロセスを簡略化します。実際のところ、Vagrant を直接使用する必要はほとんどありません。Test Kitchen は、以下のような最も一般的なタスクを実行します。
+ Vagrant でのインスタンスの起動。
+ インスタンスへのクックブックの転送。
+ インスタンスでのクックブックのレシピの実行。
+ インスタンスでのクックブックのレシピのテスト。
+ SSH を使用した、インスタンスへのログイン。

Test Kitchen gem を直接インストールする代わりに、[Chef DK](https://www.chef.io/downloads) をインストールすることをお勧めします。このパッケージには Chef 本体に加えて、Test Kitchen、[Berkshelf](http://berkshelf.com/)、[ChefSpec](https://docs.chef.io/chefspec.html)、さらにこれ以外の便利なツールが数種類含まれています。

次に、Test Kitchen の「[使用開始ウォークスルー](http://kitchen.ci/)」を参照してください。ここでは、Test Kitchen を使用してレシピを実行し、テストするための基本的な方法が紹介されています。

**注記**  
この章の例では、レシピを実行するための便利な方法として Test Kitchen を使用しています。例の実行に必要な情報は「手動確認」セクションにすべて記載されているため、このセクションを終了した後で「使用開始ウォークスルー」を中止してもかまいません。ただし、基本的に Test Kitchen は [Bash 自動化テストシステム (BATS) ](https://github.com/sstephenson/bats)などのテストフレームワークをサポートするテスト用プラットフォームです。Test Kitchen を使用してレシピをテストする方法を学ぶには、どこかの時点でウォークスルーの残りを実行します。