

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

# 使用 `register` 命令
<a name="registered-instances-register-registering-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 支持 团队联系。

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

要注册实例，请确保至少运行 AWS CLI的 1.16.180 版。以下示例显示了 `register` 命令的一般语法。

```
aws opsworks register \
  [--profile profile_name] \
  [--region region_name] \
  --infrastructure-class instance_type \
  --stack-id stack ID \
  [--local] | [--ssh-private-key key_file --ssh-username username] | [--override-ssh command_string] \
  [--override-hostname hostname] \
  [--debug] \
  [--override-public-ip public IP] \
  [--override-private-ip private IP] \
..[--use-instance-profile] \
  [ [IP address] | [hostname] | [instance ID]
```

以下参数是所有 AWS CLI 命令的通用参数。

**`--profile`**  
(可选) 凭证的配置文件名称。如果省略此参数，命令将使用默认凭证运行。有关如何 AWS CLI 确定默认证书的更多信息，请参阅[配置 AWS 命令行界面](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

**`--region`**  
 （可选） OpsWorks Stacks 服务终端节点的区域。不要设置`--region`为堆栈的区域。 OpsWorks 堆栈会根据堆栈 ID 自动确定堆栈的区域。  
如果已设置默认区域，则可省略此参数。有关如何指定默认区域的更多信息，请参阅[配置 AWS 命令行界面](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

对于 Amazon EC2 和本地实例，请使用以下参数。

**`--infrastructure-class`**  
（必需）必须将此参数设置为`ec2`或`on-premises`，以指示您注册的是亚马逊实例 EC2 还是本地实例。

**`--stack-id`**  
(必需) 注册实例时将使用的堆栈的 ID。  
要查找堆栈 ID，请在 **Stack (堆栈)** 页面上选择 **Settings (设置)**。堆栈 ID 被标记为 **OpsWorks ID**，是一个看起来像`ad21bce6-7623-47f1-bf9d-af2affad8907`的 GUID。

**SSH 登录参数**  
使用以下参数指定 `register` 应如何登录到实例。    
**`--local`**  
(可选) 使用此参数注册您在其中运行该命令的实例。  
在这种情况下，`register` 不需要登录到实例。  
**`--ssh-private-key` 和 `--ssh-username`**  
 (可选) 如果您要从独立的工作站注册实例，并希望明确指定用户名称或私有密钥文件，则使用这些参数。  
+ `--ssh-username`：使用此参数指定 SSH 用户名称。

  如果省略 `--ssh-username`，`ssh` 将使用默认用户名称。
+ `--ssh-private-key`：使用此参数明确指定私有密钥文件。

  如果省略 `--ssh-private-key`，`ssh` 将尝试使用无需密码的身份验证技术进行登录，包括使用默认私有密钥。如果这些技术均不受支持，`ssh` 将查询您的密码。有关 `ssh` 如何处理身份验证的更多信息，请参阅 [Secure Shell (SSH) 身份验证协议](https://www.ietf.org/rfc/rfc4252.txt)。  
**`--override-ssh`**  
 (可选) 如果您要从独立的工作站注册实例，并希望指定自定义 [http://linux.about.com/od/commands/l/blcmdl1_ssh.htm](http://linux.about.com/od/commands/l/blcmdl1_ssh.htm) 命令字符串，则使用此参数。`register` 命令使用此命令字符串登录到注册的实例。
有关 `ssh` 的更多信息，请参阅 [SSH](http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/slogin.1)。

**`--override-hostname`**  
 （可选）为实例指定主机名，该名称仅由 OpsWorks Stacks 使用。默认值为实例的主机名。

**`--debug`**  
(可选) 如果注册过程失败，则提供调试信息。有关问题排查信息，请参阅[对实例注册进行故障排除](common-issues.md#common-issues-instance-registration)。

**`--use-instance-profile`**  
（可选，但强烈建议使用 Amazon EC2 实例）让`register`命令使用附加的实例配置文件，而不是创建 IAM 用户。如果您在 IAM 用户已被意外删除时尝试管理已注册实例，则会出现错误，而添加此参数可帮助防止此类错误。  
在已注册实例的整个生命周期中，都需要注册过程中创建的 IAM 用户。删除用户会导致 OpsWorks Stacks 代理无法与服务通信。为了帮助防止在用户被意外删除时无法正常管理已注册实例，请将 `--use-instance-profile` 参数添加到您的 `register` 命令，以便使用实例的内置实例配置文件。添加该`--use-instance-profile`参数还可以防止在每 90 天轮换 AWS 账户访问密钥时发生错误（这是推荐的最佳做法），因为它可以防止 OpsWorks 代理可用的访问密钥与所需用户之间的访问密钥不匹配。

**Target**  
(条件性) 如果您从工作站运行此命令，则命令字符串中的最终值按以下任一方式指定注册目标。  
+ 实例的公有 IP 地址。
+ 实例的主机名。
+ 对于 Amazon EC2 实例，为实例 ID。

  OpsWorks Stacks 使用实例 ID 来获取实例配置，包括实例的公有 IP 地址。默认情况下， OpsWorks Stacks 使用此地址来构造用于登录实例的`ssh`命令字符串。如果您需要连接到私有 IP 地址，则必须使用 `--override-ssh` 提供自定义命令字符串。有关示例，请参阅[从工作站注册本地实例](registered-instances-register-registering-examples.md#registered-instances-register-registering-examples-workstation-onprem)。
如果您指定主机名，则 `ssh` 依赖 DNS 服务器将该名称解析为特定实例。如果您不确定主机名是否唯一，则使用 `ssh` 验证该主机名是否解析为正确的实例。
如果您从要注册的实例运行此命令，则省略实例标识符，改为使用 `--local` 参数。

以下参数仅适用于本地实例。

**`--override-public-ip`**  
（可选） OpsWorks Stacks 将指定地址显示为实例的公有 IP 地址。它不会更改实例的公有 IP 地址。但是，如果用户使用控制台连接到实例，例如通过在 “实**例**” 页面上选择地址， OpsWorks Stacks 将使用指定的地址。 OpsWorks 堆栈会自动确定参数的默认值。

**`--override-private-ip`**  
（可选） OpsWorks Stacks 将指定地址显示为实例的私有 IP 地址。它不会更改实例的私有 IP 地址。 OpsWorks 堆栈会自动确定参数的默认值。