

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 第 1 步：创建说明书
<a name="gettingstarted-cookbooks-create-cookbook"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

首先，创建一个说明书。此说明书在一开始不会起太多作用，但它可以作为本演练其余部分的基础。

**注意**  
此步骤演示如何手动创建说明书。使用 Chef 开发工具包 ([Chef DK](https://docs.chef.io/#chef-dk-title))，您可以在本地工作站上运行 [https://docs.chef.io/ctl_chef.html#chef-generate-cookbook](https://docs.chef.io/ctl_chef.html#chef-generate-cookbook) 命令，节省创建说明书所需的时间。但是，此命令创建的一些文件夹和文件在本演练中是用不到的。

**创建说明书**

1. 在您的本地工作站上，创建一个名为 `opsworks_cookbook_demo` 的目录。您可以使用一个不同的名称，但务必在本演练过程中将其替换为 `opsworks_cookbook_demo`。

1. 在 `opsworks_cookbook_demo` 目录中，使用文本编辑器创建一个名为 `metadata.rb` 的文件。添加以下代码以指定说明书的名称。有关 `metadata.rb` 的更多信息，请参阅 Chef 网站上的 [metadata.rb](https://docs.chef.io/config_rb_metadata.html)。

   ```
   name "opsworks_cookbook_demo"
   ```

1. 在 `opsworks_cookbook_demo` 目录中，创建名为 `recipes` 的子目录。此子目录包含您为本演练的说明书创建的所有配方。

1. 在 `recipes` 目录中创建名为 `default.rb` 的文件。此文件包含一个与之同名但没有文件扩展名的配方：`default`。将以下单独的代码行添加到 `default.rb` 文件中。此代码是一个一行配方，当配方运行时，将在日志中显示一条简单的消息：

   ```
   Chef::Log.info("********** Hello, World! **********")
   ```

1. 在终端处或在命令提示符下，使用 **tar** 命令创建一个名为 `opsworks_cookbook_demo.tar.gz` 的文件，该文件包含 `opsworks_cookbook_demo` 目录及其内容。例如：

   ```
   tar -czvf opsworks_cookbook_demo.tar.gz opsworks_cookbook_demo/
   ```

   您可以使用一个不同的文件名称，但务必在本演练过程中将其替换为 `opsworks_cookbook_demo.tar.gz`。
**注意**  
当您在 Windows 上创建 `tar` 文件时，顶级目录必须是说明书的父目录。本演练已经在 Linux (使用 `tar` 程序包提供的 **tar** 命令) 和 Windows (使用 [Git Bash](https://git-for-windows.github.io/) 提供的 **tar** 命令)上经过了测试。使用其他命令或程序来创建压缩的 TAR (.tar.gz) 文件可能不会达到预期效果。

1. 创建一个 S3 存储桶或使用现有存储桶。有关更多信息，请参阅[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)。

1. 将 `opsworks_cookbook_demo.tar.gz` 文件上传到 S3 存储桶。有关更多信息，请参阅[将对象添加到存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html)。

您现在拥有一个您将在本演练的整个过程中都要用到的说明书。

在[下一步](gettingstarted-cookbooks-create-stack.md)中，您将创建一个 OpsWorks Stacks 堆栈，稍后将使用该堆栈来上传食谱和运行食谱的食谱。