使用命令提示符的自动化迁移活动列表 - Cloud Migration Factory on AWS

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

使用命令提示符的自动化迁移活动列表

注意

我们建议在AWS主机上通过云迁移工厂运行自动化。您可以按照以下步骤运行自动化脚本。确保从 GitHub 存储库下载自动化脚本,并使用从命令提示符运行自动化中的步骤配置自动化服务器,并按照配置迁移自动化服务器权限中的说明配置 AWS 权限

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

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

重要

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

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

检查先决条件

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

在进行先决条件检查之前,必须在一台源服务器上手动安装第一个代理,这样就会在中创建复制服务器EC2,我们将连接到此服务器进行端口 1500 测试。安装完成后, AWS 应用程序迁移服务 (AWS MGN) 将在亚马逊弹性计算云 (AmazonEC2) 中创建复制服务器。在本练习中,您需要验证从源服务器到复制服务器的TCP端口 1500。有关在源服务器上安装 AWS MGN代理的信息,请参阅《应用程序迁移服务用户指南》中的安装说明

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

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

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

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

Replace(替换) <wave-id> 以及 <rep-server-ip> 使用适当的值:

  • Waveid 是一个唯一整数值,用于标识您的迁移 Wave。

  • ReplicationServerIP 值用于标识复制服务器 IP 地址。将此值更改为 Amazon EC2 IP 地址。要找到此地址,请登录 AWS Management Console,搜索 “复制”,选择其中一个复制服务器,然后复制私有 IP 地址。如果通过公共互联网进行复制,请改用公有 IP 地址。

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

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

注意

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

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

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

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

脚本最终结果

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

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

安装复制代理

注意

在安装代理之前,请确保AWS MGN已在每个目标帐户中初始化

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

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

  2. 导航到 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 上开始安装,然后分别在 Linux 上进行安装 AWS 账户。

安装复制代理
注意

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

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

该脚本完成复制代理安装后,系统将显示结果。查看结果中的错误消息,找出安装代理失败的服务器。您需要在安装失败的服务器上手动安装代理。如果手动安装也失败,请前往 AWS Support Center 记录支持案例。

代理安装结果

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

推送启动后脚本

AWS应用程序迁移服务支持启动后脚本,可帮助您自动执行操作系统级别的活动,例如 install/uninstall of software after launching target instances. This activity pushes the post-launch scripts to Windows and/or Linux 计算机,具体取决于确定要迁移的服务器。

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

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

  2. 导航到 c:\migrations\scripts\script_mgn_1-FileCopy 文件夹,并运行以下 Python 命令:

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

Replace(替换) <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. 该脚本将文件复制到目标文件夹。如果目标文件夹不存在,则该解决方案会创建一个目录并通知您此操作。

验证复制状态

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

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

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

  2. 导航到 \migrations\scripts\script_mgn_2-Verify-replication 文件夹,并运行以下 Python 命令:

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

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

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

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

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

代理安装结果

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

验证目标实例状态

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

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

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

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

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

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

Replace(替换) <wave-id> 使用相应的 Wave ID 值来验证实例状态。该脚本验证此 Wave 中所有源服务器的实例启动进程。

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

  2. 然后,该脚本将返回目标实例的列表IDs。

    注意

    如果您收到错误消息,提示目标实例 ID 不存在,则说明启动作业可能仍在运行。请耐心等待几分钟,然后再继续。

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

注意

如果您的目标实例第一次未通过 2/2 运行状况检查,则可能是由于启动进程需要更长时间才能完成。我们建议在第一次运行状况检查大约一小时后再启动第二次运行状况检查。这样可以确保启动进程完成。如果第二次仍未通过运行状况检查,请前往 AWS Support Center 记录支持案例。

关闭范围内源服务器

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

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

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

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

    Python 3-Shutdown-all-servers.py –Waveid <wave-id>
  3. Replace(替换) <wave-id> 使用相应的 Wave ID 值来关闭源服务器。

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

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

检索目标实例 IP

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

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

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

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

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

Replace(替换) <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文件提供了实例名称和实例 IP 的详细信息。如果实例包含多个 IP NIC 或 IP,则所有实例都将列出并用逗号分隔。

验证目标服务器的连接

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

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

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

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

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

Replace(替换) <wave-id> 使用相应的 Wave ID 值来获取目标实例的新 IP 地址。

注意

此脚本使用默认RDP端口 3389 和SSH端口 22。如果需要,您可以添加以下参数以重置为默认端口:--RDPPort <rdp-port> --SSHPort <ssh-port>.

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

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