

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用命令提示字元的自動遷移活動清單
<a name="list-of-automated-migration-activities-using-command-prompt"></a>

**注意**  
我們建議您從 AWS 主控台上的 Cloud Migration Factory 執行自動化。您可以使用下列步驟來執行自動化指令碼。請確定您從 GitHub 儲存庫下載自動化指令碼，並使用[從命令提示執行自動化](run-automations-from-command-prompt.md)中的步驟來設定自動化伺服器，並遵循在設定[遷移自動化伺服器的 AWS 許可中設定](configure-migration-automation-server.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 Application Migration Service (AWS MGN) 會在 Amazon Elastic Compute Cloud (Amazon EC2) 中建立複寫伺服器。在此活動中，您將需要驗證從來源伺服器到複寫伺服器的 TCP 連接埠 1500。如需有關在來源伺服器上安裝 AWS MGN 代理程式的資訊，請參閱《*Application Migration Service 使用者指南*》中的[安裝說明](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>
```

以適當的值取代 {{<wave-id>}} 和 {{<rep-server-ip>}}：
+ `Waveid` 是用來識別遷移波紋的唯一整數值。
+ 此`ReplicationServerIP`值可識別複寫伺服器 IP 地址。將此值變更為 Amazon EC2 IP 地址。若要尋找此地址，請登入 AWS 管理主控台、搜尋**複寫**、選取其中一個複寫伺服器，然後複製私有 IP 地址。如果複寫是透過公有網際網路進行，請改用公有 IP 地址。

  1. 指令碼會自動擷取指定波動的伺服器清單。

指令碼接著會檢查 Windows 伺服器的先決條件，並傳回`fail`每次檢查的 `pass`或 狀態。

**注意**  
當 PowerShell 指令碼不受信任時，您可能會收到如下的安全警告。在 PowerShell 中執行下列命令以解決問題：  

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

接著，指令碼會檢查 Linux 伺服器。

檢查完成後，指令碼會傳回每個伺服器的最終結果。

 **指令碼最終結果** 

![指令碼最終結果](http://docs.aws.amazon.com/zh_tw/solutions/latest/cloud-migration-factory-on-aws/images/script-final-result.png)


如果伺服器未通過一或多個先決條件檢查，您可以透過檢閱檢查完成時提供的詳細錯誤訊息，或捲動日誌詳細資訊來識別故障的伺服器。

指令碼也會更新遷移工廠 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 值，以在識別的波動中的所有伺服器上安裝複寫代理程式。指令碼會將代理程式逐一安裝在相同批次的所有來源伺服器上。

**注意**  
若要重新安裝代理程式，您可以新增`--force`引數。

1. 指令碼會產生清單，識別指定波動中包含的來源伺服器。此外，也可能提供在多個帳戶和不同作業系統版本中識別的伺服器。

如果此波中包含 Linux 機器，您必須輸入您的 Linux sudo 登入憑證，才能登入這些來源伺服器。

安裝會在 Windows 上開始，然後針對每個 AWS 帳戶繼續執行 Linux。

 **安裝複寫代理程式** 

![安裝複寫代理程式](http://docs.aws.amazon.com/zh_tw/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_tw/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 Application Migration Service 支援啟動後指令碼，協助您在啟動目標執行個體後自動化作業系統層級的活動，例如安裝/解除安裝軟體。此活動會將啟動後指令碼推送至 Windows 和/或 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>}} 取代為指令碼所在的來源完整檔案路徑。例如 `c:\migrations\scripts\script_mgn_1-FileCopy`。此命令會將來源資料夾中的所有檔案複製到目的地資料夾。

**注意**  
至少必須提供這兩個引數的其中之一：WindowsSource、LinuxSource。如果您提供 WindowsSource 路徑，此指令碼只會在此波次中將檔案推送至 Windows 伺服器，與 LinuxSource 相同，只會在此波次中將檔案推送至 Linux 伺服器。同時提供 會將檔案推送到 Windows 和 Linux 伺服器。

1. 指令碼會產生清單，識別指定波動中包含的來源伺服器。此外，也可能提供在多個帳戶和不同作業系統版本中識別的伺服器。

如果此波中包含 Linux 機器，您必須輸入您的 Linux sudo 登入憑證，才能登入這些來源伺服器。

1. 指令碼會將檔案複製到目的地資料夾。如果目的地資料夾不存在，解決方案會建立目錄並通知您此動作。

## 驗證複寫狀態
<a name="verify-the-replication-status-1"></a>

此活動會自動驗證範圍內來源伺服器的複寫狀態。指令碼每五分鐘重複一次，直到指定波動中所有來源伺服器的狀態變更為*運作*狀態。

從遷移自動化伺服器使用下列程序來驗證複寫狀態。

1. 以管理員身分登入，開啟命令提示字元 (`CMD.exe`)。

1. 導覽至 `\migrations\scripts\script_mgn_2-Verify-replication` 資料夾並執行下列 Python 命令：

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

將 {{<wave-id>}} 取代為適當的 Wave ID 值，以驗證複寫狀態。指令碼會驗證特定波動中所有伺服器的複寫詳細資訊，並更新解決方案中所識別來源伺服器的**複寫狀態**屬性。

1. 指令碼會產生清單，識別指定波動中包含的伺服器。

準備好啟動之範圍內來源伺服器的預期狀態為**運作狀態良好**。如果您收到伺服器的不同狀態，表示尚未準備好啟動。

下列範例波的螢幕擷取畫面顯示目前波中的所有伺服器都已完成複寫，並準備好進行測試或切換。

 **代理程式安裝結果** 

![複寫狀態](http://docs.aws.amazon.com/zh_tw/solutions/latest/cloud-migration-factory-on-aws/images/replication-status.png)


或者，您可以在**遷移工廠** Web 界面中驗證狀態。

## 驗證目標執行個體狀態
<a name="verify-the-target-instance-status-1"></a>

此活動會檢查相同波次中所有範圍內來源伺服器的開機程序，以驗證目標執行個體的狀態。最多可能需要 30 分鐘才能啟動目標執行個體。您可以手動檢查狀態，方法是登入 Amazon EC2 主控台、搜尋來源伺服器名稱，以及檢查狀態。您會收到運作狀態檢查訊息，指出*通過 2/2 檢查*，這表示從基礎設施的角度來看，執行個體運作狀態良好。

不過，對於大規模遷移，檢查每個執行個體的狀態非常耗時，因此您可以執行此自動化指令碼，以驗證指定波動中所有來源伺服器的 *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 值，以驗證執行個體狀態。此指令碼會驗證此波中所有來源伺服器的執行個體開機程序。

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>

此活動會關閉與遷移相關的範圍內來源伺服器。驗證來源伺服器的複寫狀態後，您就可以關閉來源伺服器，以停止從用戶端應用程式到伺服器的交易。您可以在切換視窗中關閉來源伺服器。手動關閉來源伺服器可能需要每個伺服器五分鐘，而對於大型波紋，總共可能需要幾個小時。反之，您可以執行此自動化指令碼來關閉指定波動中的所有伺服器。

使用下列程序從遷移自動化伺服器關閉所有涉及遷移的來源伺服器。

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. 指令碼會先關閉指定波動中的 Windows 伺服器。Windows 伺服器關閉後，指令碼會繼續進行 Linux 環境並提示登入憑證。成功登入後，指令碼會關閉 Linux 伺服器。

## 擷取目標執行個體 IP
<a name="retrieve-the-target-instance-ip"></a>

此活動會擷取目標執行個體 IP。如果 DNS 更新是環境中的手動程序，您將需要取得所有目標執行個體的新 IP 地址。不過，您可以使用自動化指令碼，將指定波動中所有執行個體的新 IP 地址匯出至 CSV 檔案。

使用下列程序從遷移自動化伺服器擷取目標執行個體 Ips。

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\_name** 和 **instance\_Ips** 詳細資訊。如果執行個體包含多個 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 存取的測試結果。