

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

# 注册实例
<a name="registered-instances-register-registering-register"></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 支持 团队联系。

**注意**  
仅 Linux 堆栈支持此功能。

您可以通过从您的工作站或实例运行 AWS CLI `register` 命令来注册实例。处理该操作的最简单方法是使用 [OpsWorks Stacks 控制台](https://console.aws.amazon.com/opsworks/)的注册向导，这可简化构建命令字符串的流程。熟悉注册过程后，如果愿意，您可以跳过该向导并运行 `register` 命令。

下文介绍了如何使用注册向导向现有堆栈注册实例。

**注意**  
要使用新堆栈注册实例，您可以通过在 OpsWorks 堆栈控制面板上选择**注册实例**来完成此操作。这将启动一个向导 (与用于现有堆栈的向导相同，只不过多了一个用于配置新堆栈的页面)。

**使用注册向导来注册实例**

1. 在 [OpsWorks Stacks 控制台](https://console.aws.amazon.com/opsworks/)中，创建一个堆栈或者打开现有堆栈。

1. 在导航窗格中选择 **Instances**，然后选择 **register an instance**。

1. 在**选择实例类型**页面上，指定您是要注册 Amazon EC2 还是本地实例：
   + 如果您要注册 Amazon EC2 实例，请选择**下一步：选择实例**。
   + 如果要注册本地实例，则选择**下一步：安装 AWS CLI**，然后转到步骤 5。

1. 如果您正在注册 Amazon EC2 实例，请打开**选择实例**页面选择要注册的实例。 OpsWorks Stacks 收集生成命令所需的信息。在您完成后，选择**下一步：安装 AWS CLI**。

1. 您计划运行的实例`register`必须运行版本为 1.16.180 AWS CLI 或更高版本。注册向导页面提供了指向安装和配置说明的链接，用于安装或更新 AWS CLI。验证 AWS CLI 安装后，请指定是在从要注册的实例运行命令，还是从独立的工作站运行命令，然后选择 **Next: Register Instances (下一步: 注册实例)**。

1. **Register Instances** 页面将显示 `register` 命令字符串的模板，其中包含您选择的选项。例如，如果您要从单独的工作站注册 Amazon EC2 实例，则默认模板类似于以下内容。

   ```
   aws opsworks register --infrastructure-class ec2 --region us-west-2
     --stack-id 247be7ea-3551-4177-9524-1ff804f453e3 --ssh-username [username] i-f1245d10
   ```
**重要**  
在已注册实例的整个生命周期中，都需要注册过程中创建的 IAM 用户。删除用户会导致 OpsWorks Stacks 代理无法与服务通信。为了帮助防止在用户被意外删除时无法正常管理已注册实例，请将 `--use-instance-profile` 参数添加到您的 `register` 命令，以便使用实例的内置实例配置文件。添加该`--use-instance-profile`参数还可以防止在每 90 天轮换 AWS 账户访问密钥时发生错误（这是推荐的最佳做法），因为它可以防止 OpsWorks 代理可用的访问密钥与所需的 IAM 用户之间的访问密钥不匹配。

   如果您将 “**我使用 SSH 密钥**” 设置为 “**是**”， OpsWorks Stacks 会将`--ssh-private-key`参数添加到字符串中，您可以使用该参数来指定 SSH 私钥文件。
**注意**  
如果您想让 `register` 使用密码登录，则将 **I use SSH keys** 设置为 **No**。当您运行 `register` 时，会提示您输入密码。

   将此字符串复制到文本编辑器，并根据需要进行编辑。请注意以下几点。
   + 方括号中的文本表示您必须提供的信息，例如 SSH 密钥文件的位置。
   + 该模板假定您正在使用默认 AWS 凭证运行 `register`。如果不是，请向命令字符串添加一个 `--profile` 参数，并指定您要使用的凭证配置文件名称。

   对于其他场景，您可能需要进一步更改命令。有关可用 `register` 参数的说明以及构建命令字符串的其他方法，请参阅[使用 `register` 命令](registered-instances-register-registering-command.md)。您也可以通过从命令行运行 `aws opsworks help register` 来显示命令的说明文档。如需查看一些示例命令字符串，请参阅[示例 register 命令](registered-instances-register-registering-examples.md)。

1. 编辑完命令字符串后，请在您的工作站上打开一个终端窗口，或使用 SSH 登录到实例并运行该命令。整个操作通常需要大约五分钟时间，在此期间，该实例处于 **Registering** 状态。

1. 操作完成后，请选择 **Done**。该实例现在处于 **Registered** 状态，并在堆栈的 **Instances** 页面上作为未分配实例列出。

`register` 命令执行以下操作。

1. 如果 `register` 在工作站上运行，则该命令首先使用 SSH 登录到要注册的实例。

   此过程的剩余部分将在该实例上发生，并且无论您在哪里运行命令，步骤都相同。

1. 从 Amazon S3 下载 OpsWorks Stacks 代理软件包。

1. 解包并安装代理及其依赖项，例如[适用于 Ruby 的 AWS SDK](https://aws.amazon.com/documentation/sdk-for-ruby/)。

1. 创建以下内容：
   + 一个 IAM 用户，它使用 OpsWorks Stacks 服务引导代理以提供安全通信。

     该用户的权限仅允许 `opsworks:RegisterInstance` 操作，并且这些权限在 15 分钟后过期。
   + 堆栈的 IAM 组，其中包含已注册实例的用户。

1. 创建 RSA 密钥对并将公钥发送到 OpsWorks Stacks。

   此密钥对用于加密代理与 OpsWorks Stacks 之间的通信。

1. 使用 OpsWorks 堆栈注册实例。该堆栈随后运行一组初始设置配方来配置实例，其中包括以下内容。
   + 覆盖实例的主机文件。

     通过注册实例，您已将用户管理移交给 OpsWorks Stacks，Stacks 必须拥有自己的主机文件才能控制 SSH 登录权限。
   + 对于亚马逊 EC2 实例，初始设置还包括向堆栈注册任何附加的 Amazon EBS 卷或弹性 IP 地址。

     您必须确保 Amazon EBS 卷未挂载到预留的挂载点，包括 `/var/www` 以及实例各层预留的任何挂载点。有关管理堆栈资源的更多信息，请参阅[资源管理](resources.md)。有关层挂载点的更多信息，请参阅[OpsWorks 堆栈图层参考](layers.md)。

   有关初始设置配置更改的完整介绍，请参阅[初始设置配置更改](registered-instances-lifecycle.md#registered-instances-lifecycle-setup-config)。
**注意**  
初始设置不会更新已注册实例的操作系统；您必须自行处理该任务。有关更多信息，请参阅 [管理安全更新](workingsecurity-updates.md)。