

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

# 第 9 步：更新说明书以运行命令
<a name="gettingstarted-cookbooks-run-command"></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 支持 团队联系。

通过添加可运行用于在实例上创建 SSH 秘钥的命令的配方，更新您的说明书。

**更新实例上的说明书并运行新的配方**

1. 在您的本地工作站上的 `opsworks_cookbook_demo` 目录的 `recipes` 子目录中，创建名为 `run_command.rb` 的包含以下代码的文件。有关更多信息，请转到 [execute](https://docs.chef.io/resource_execute.html)。

   ```
   execute "Create an SSH key" do
     command "ssh-keygen -f /tmp/my-key -N fLyC3jbY"
   end
   ```

1. 在终端处或在命令提示符下，使用 **tar** 命令创建 `opsworks_cookbook_demo.tar.gz` 文件的新版本，该文件包含 `opsworks_cookbook_demo` 目录及其更新的内容。

1. 将更新后的 `opsworks_cookbook_demo.tar.gz` 文件上传到 S3 存储桶。

1. 按照[第 5 步：更新实例上的说明书并运行配方](gettingstarted-cookbooks-copy-cookbook.md)中的步骤，更新实例上的说明书并运行配方。在“运行配方”步骤中，对于 **Recipes to execute (要执行的配方)**，键入 **opsworks\$1cookbook\$1demo::run\$1command**。

**测试配方**

1. 如果您尚未登录实例，请登录。

1. 在命令提示符下，运行以下命令 (一次运行一个命令)，以确认已创建 SSH 密钥：

   ```
   sudo cat /tmp/my-key
   
   sudo cat /tmp/my-key.pub
   ```

   随即显示 SSH 私有和公有密钥的内容：

   ```
   -----BEGIN RSA PRIVATE KEY-----
   Proc-Type: 4,ENCRYPTED
   DEK-Info: AES-128-CBC,DEF7A09C...541583FA
   A5p9dCuo...wp0YYH1c
   -----END RSA PRIVATE KEY-----
   
   ssh-rsa AAAAB3N...KaNogZkT root@cookbooks-demo1
   ```

在[下一步](gettingstarted-cookbooks-run-script.md)中，您将更新说明书以在实例上运行一个脚本。