

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

# 使用命令提示符的自动化迁移活动列表
<a name="list-of-automated-migration-activities-using-command-prompt"></a>

**注意**  
我们建议通过 Cloud Migration Factory on AWS 控制台运行自动化。您可以按照以下步骤运行自动化脚本。请务必从 GitHub 存储库下载自动化脚本，并使用[从命令提示符运行](run-automations-from-command-prompt.md)自动化中的步骤配置自动化服务器，并按照[为迁移自动化服务器配置 AWS 权限](step7.md#configure-aws-permissions-for-the-migration-automation-server)中的说明配置权限。

AWS 上的 Cloud Migration Factory 解决方案部署了自动迁移活动，您可以将其用于迁移项目。您可以遵循下面列出的迁移活动，并根据业务需求对其进行自定义。

在开始任何活动之前，请验证您已以域用户身份登录迁移自动化服务器，该用户在范围内源服务器上拥有本地管理员权限。

**重要**  
您必须以管理员用户身份登录才能完成本节中列出的活动。

按照相同的顺序遵循以下流程，使用示例自动化脚本和活动对该解决方案进行完整的测试。

## 检查先决条件
<a name="prerequisites-3"></a>

连接范围内源服务器以验证必要的先决条件，例如 TCP 1500、TCP 443、根卷可用空间、.Net 框架版本和其他参数。这些先决条件是复制所必需的。

在进行先决条件检查之前，必须在一台源服务器上手动安装第一个代理，这样就会在中创建复制服务器 EC2，我们将连接到该服务器进行端口 1500 测试。安装后，AWS 应用程序迁移服务 (AWS MGN) 将在亚马逊弹性计算云 (Amazon EC2) 中创建复制服务器。在此活动中，您需要验证从源服务器到复制服务器的 TCP 端口 1500。有关在源服务器上安装 AWS MGN 代理的信息，请参阅*应用程序迁移服务用户指南*中的[安装说明](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation-instructions.html)。

按照以下步骤登录迁移自动化服务器以检查先决条件。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_0-Prerequisites-checks` 文件夹，并运行以下 Python 命令：

```
python 0-Prerequisites-checks.py --Waveid <wave-id> --ReplicationServerIP <rep-server-ip>
```

*<rep-server-ip>*用相应的值替换*<wave-id>*和：
+ `Waveid` 是一个唯一整数值，用于标识您的迁移 Wave。
+ `ReplicationServerIP` 值用于标识复制服务器 IP 地址。将此值更改为 Amazon EC2 IP 地址。要找到此地址，请登录 AWS 管理控制台，搜索**复制**，选择其中一个复制服务器，然后复制私有 IP 地址。如果通过公共互联网进行复制，请改用公有 IP 地址。

  1. 该脚本自动检索指定 Wave 的服务器列表。

然后，该脚本将检查适用于 Windows 服务器的先决条件，并针对每项检查返回一个 `pass` 或 `fail` 状态。

**注意**  
当 PowerShell 脚本不可信时，您可能会收到如下安全警告。在中运行以下命令 PowerShell 来解决问题：  

```
Unblock-File C:\migrations\scripts\script_mgn_0-Prerequisites-checks\0-Prerequisites-Windows.ps1
```

接下来，该脚本将检查 Linux 服务器。

检查完成后，该脚本将返回每台服务器的最终结果。

 **脚本最终结果** 

![\[脚本最终结果\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/script-final-result.png)


如果服务器未通过一项或多项先决条件检查，则您可以查看检查完成时提供的详细错误消息或滚动浏览日志详细信息来找出出现故障的服务器。

该脚本还将在 Migration Factory Web 界面中更新该解决方案的**迁移状态**，如以下示例项目的屏幕截图所示。

## 安装复制代理
<a name="install-the-replication-agents-1"></a>

**注意**  
在安装代理之前，请确保已在[每个目标账户中初始化 AWS MGN](https://docs.aws.amazon.com/mgn/latest/ug/mgn-initialize.html)。

按照以下步骤在范围内源服务器中自动安装复制代理。

1. 在以管理员身份登录的迁移自动化服务器中，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_1-AgentInstall` 文件夹，并运行以下 Python 命令：

```
python 1-AgentInstall.py --Waveid <wave-id>
```

将 <*wave-id*> 替换为相应的 Wave ID 值，以在指定 Wave 中的所有服务器上安装复制代理。该脚本将在同一 Wave 中的所有源服务器上逐一安装代理。

**注意**  
要重新安装代理，可以添加 `--force` 参数。

1. 该脚本生成一个列表，标出指定 Wave 中包含的源服务器。此外，该脚本可能还提供在多个账户中找到且适用于不同操作系统版本的服务器。

如果此 Wave 中包含 Linux 计算机，则您必须输入您的 Linux sudo 登录凭证才能登录这些源服务器。

在 Windows 上开始安装，然后进入每个 AWS 账户的 Linux。

 **安装复制代理** 

![\[安装复制代理\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/install-replication-agents.png)


**注意**  
当 PowerShell 脚本不可信时，您可能会收到如下安全警告。在中运行以下命令 PowerShell 来解决问题：  

```
Unblock-File C:\migrations\scripts\script_mgn_1-AgentInstall\1-Install-Windows.ps1
```

该脚本完成复制代理安装后，系统将显示结果。查看结果中的错误消息，找出安装代理失败的服务器。您需要在安装失败的服务器上手动安装代理。如果手动安装不成功，请前往 [AWS 支持中心](https://console.aws.amazon.com/support/home)并记录支持案例。

 **代理安装结果** 

![\[安装代理结果\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/install-agent-result.png)


该脚本还在 Migration Factory Web 界面中提供迁移状态，如以下示例项目的屏幕截图所示。

## 推送启动后脚本
<a name="push-the-post-launch-scripts-1"></a>

AWS 应用程序迁移服务支持启动后脚本，以帮助您在启动目标实例后自动执行操作系统级别的活动， install/uninstall 例如软件活动。此活动将启动后的脚本推送到 Windows and/or Linux 计算机，具体取决于确定要迁移的服务器。

按照以下步骤通过迁移自动化服务器将启动后脚本推送到 Windows 计算机。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_1-FileCopy` 文件夹，并运行以下 Python 命令：

```
python 1-FileCopy.py --Waveid <wave-id> --WindowsSource <file-path> --LinuxSource <file-path>
```

*<wave-id>*替换为相应的 Wave ID 值以及*<file-path>*脚本所在的 Source 的完整文件路径。例如 `c:\migrations\scripts\script_mgn_1-FileCopy`。此命令将源文件夹中的所有文件复制到目标文件夹。

**注意**  
必须提供这两个参数中的至少一个： WindowsSource、 LinuxSource。如果您提供 WindowsSource 路径，则此脚本只会在这一浪潮中将文件推送到 Windows 服务器，这与在此浪潮中仅将文件推送到 Linux 服务器一样 LinuxSource。同时提供两者则会将文件推送到 Windows 服务器和 Linux 服务器。

1. 该脚本生成一个列表，标出指定 Wave 中包含的源服务器。此外，该脚本可能还提供在多个账户中找到且适用于不同操作系统版本的服务器。

如果此 Wave 中包含 Linux 计算机，则您必须输入您的 Linux sudo 登录凭证才能登录这些源服务器。

1. 该脚本将文件复制到目标文件夹。如果目标文件夹不存在，则该解决方案会创建一个目录并通知您此操作。

## 验证复制状态
<a name="verify-the-replication-status-1"></a>

此活动自动验证范围内源服务器的复制状态。该脚本每五分钟重复一次，直到指定 Wave 中所有源服务器的状态均变为*运行状况正常*状态。

按照以下步骤通过迁移自动化服务器验证复制状态。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `\migrations\scripts\script_mgn_2-Verify-replication` 文件夹，并运行以下 Python 命令：

```
python 2-Verify-replication.py --Waveid <wave-id>
```

*<wave-id>*替换为相应的 Wave ID 值以验证复制状态。该脚本验证特定 Wave 中所有服务器的复制详细信息，并更新在该解决方案中找到的源服务器的**复制状态**属性。

1. 该脚本生成一个列表，标出指定 Wave 中包含的服务器。

已准备好启动的范围内源服务器的预期状态为**运行状况正常**。如果您收到的服务器状态不是此状态，则说明该服务器尚未准备好启动。

以下示例 Wave 的屏幕截图显示，当前 Wave 中的所有服务器均已完成复制，并且已准备好进行测试或割接。

 **代理安装结果** 

![\[复制状态\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/cloud-migration-factory-on-aws/images/replication-status.png)


或者，您也可以选择在 **Migration Factory** Web 界面中验证状态。

## 验证目标实例状态
<a name="verify-the-target-instance-status-1"></a>

此活动通过查看同一 Wave 中所有范围内源服务器的启动进程来验证目标实例的状态。目标实例可能需要长达 30 分钟才能启动。您可以通过登录 Amazon EC2 控制台、搜索源服务器名称并检查状态来手动检查状态。您将收到 *2/2 检查通过*的运行状况检查消息，这表明从基础设施的角度来看，实例运行状况正常。

但是，对于大规模迁移，查看每个实例的状态非常耗时，因此您可以运行该自动化脚本来验证指定 Wave 中所有源服务器的 *2/2 检查通过*状态。

按照以下步骤通过迁移自动化服务器验证目标实例状态。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_3-Verify-instance-status` 文件夹，并运行以下 Python 命令：

```
python 3-Verify-instance-status.py --Waveid <wave-id>
```

*<wave-id>*替换为相应的 Wave ID 值以验证实例状态。该脚本验证此 Wave 中所有源服务器的实例启动进程。

1. 该脚本返回指定波浪的服务器列表和实例 IDs 的列表。

1. 然后，该脚本将返回目标实例的列表 IDs。
**注意**  
如果您收到错误消息，提示目标实例 ID 不存在，则说明启动作业可能仍在运行。请耐心等待几分钟，然后再继续。

1. 您将收到实例状态检查，表明您的目标实例是否通过 2/2 运行状况检查。

**注意**  
如果您的目标实例第一次未通过 2/2 运行状况检查，则可能是由于启动进程需要更长时间才能完成。我们建议在第一次运行状况检查大约一小时后再启动第二次运行状况检查。这样可以确保启动进程完成。如果第二次运行状况检查失败，请前往 [AWS 支持中心](https://console.aws.amazon.com/support/home)记录支持案例。

## 关闭范围内源服务器
<a name="shut-down-the-in-scope-source-servers-1"></a>

此活动关闭与迁移相关的范围内源服务器。验证源服务器的复制状态后，就可以关闭源服务器以停止从客户端应用程序到服务器的事务了。您可以在割接窗口中关闭源服务器。对于每台服务器，手动关闭源服务器可能需要 5 分钟，而对于大型 Wave，总共可能需要几个小时。因此，您可以运行该自动化脚本来关闭指定 Wave 中的所有服务器。

按照以下步骤通过迁移自动化服务器关闭与迁移相关的所有源服务器。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_3-Shutdown-all-servers` 文件夹，并运行以下 Python 命令：

   ```
   Python 3-Shutdown-all-servers.py -Waveid <wave-id>
   ```

1. *<wave-id>*替换为相应的 Wave ID 值以关闭源服务器。

1. 该脚本返回指定波浪的服务器列表和实例 IDs 的列表。

1. 该脚本首先关闭指定 Wave 中的 Windows 服务器。关闭 Windows 服务器后，该脚本将继续进入 Linux 环境并提示输入登录凭证。成功登录后，该脚本会关闭 Linux 服务器。

## 检索目标实例 IP
<a name="retrieve-the-target-instance-ip"></a>

此活动检索目标实例 IP。如果 DNS 更新在您的环境中是一个手动过程，则您需要获取所有目标实例的新 IP 地址。但是，您可以使用该自动化脚本将指定 Wave 中所有实例的新 IP 地址导出到 CSV 文件中。

按照以下步骤通过迁移自动化服务器检索目标实例 IP。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_4-Get-instance-IP` 文件夹，并运行以下 Python 命令：

```
Python 4-Get-instance-IP.py --Waveid <wave-id>
```

*<wave-id>*替换为相应的 Wave ID 值，以获取目标实例的新 IP 地址。

1. 该脚本返回服务器列表和目标实例 ID 信息。

1. 然后，该脚本将返回目标服务器 IP。

该脚本将服务器名称和 IP 地址信息导出到 CSV 文件 (*<wave-id>*-*<project-name>*-Ips.csv)，并将其放在与迁移脚本相同的目录中 (`c:\migrations\scripts\script_mgn_4-Get-instance-IP`)。

CSV 文件提供 **instance\$1name** 和 **instance\$1Ips** 的详细信息。如果实例包含多个 NIC 或 IP，则它们都将列出并用逗号分隔。

## 验证目标服务器的连接
<a name="verify-the-target-server-connections"></a>

此活动验证目标服务器的连接。更新 DNS 记录后，您可以使用主机名连接到目标实例。在此活动中，您将通过检查来确定是否可以使用远程桌面协议 (RDP) 或通过 Secure Shell (SSH) 访问登录操作系统。您可以单独手动登录每台服务器，但是使用该自动化脚本测试服务器连接会更高效。

按照以下步骤通过迁移自动化服务器验证目标服务器的连接。

1. 以管理员身份登录，打开命令提示符 (`CMD.exe`)。

1. 导航到 `c:\migrations\scripts\script_mgn_4-Verify-server-connection` 文件夹，并运行以下 Python 命令：

```
Python 4-Verify-server-connection.py --Waveid <wave-id>
```

*<wave-id>*替换为相应的 Wave ID 值，以获取目标实例的新 IP 地址。

**注意**  
该脚本使用默认的 RDP 端口 3389 和 SSH 端口 22。如果需要，您可以添加以下参数以重置为默认端口：--RDPPort *<rdp-port>*--SSHPort *<ssh-port>*。

1. 该脚本返回服务器列表。

1. 该脚本返回 RDP 和 SSH 访问的测试结果。