本文說明執行 mcdc
CLI 提供的不同訪客探索方法的步驟。
總覽
您可以使用訪客探索功能掃描及收集機器上執行應用程式的資料,包括虛擬機器 (VM) 執行個體和實體伺服器。也會收集機器設定、硬體、網路、已開啟的檔案、服務和程序的相關資料。
如果機器執行的平台不支援 Migration Center 用戶資產評估器 CLI 的資產探索功能 (例如在 Azure 上執行的 VM 或在內部部署的機器),以及針對在 VMware 和 AWS 上執行的 VM 進行完整評估,您可以執行訪客探索。訪客探索功能會使用訪客收集指令碼收集機器相關資料,並將資料寫入 Linux 機器的訪客收集 tar 檔案,或 Windows 機器的 zip 檔案。
主機代管 mcdc
CLI 會將指令碼上傳至目標機器,然後執行並下載結果。您可以在目標機器上本機執行指令碼,或遠端執行指令碼。視基礎架構而定,您可以選擇以下列方式使用 mcdc
CLI:
- 針對在 VMware 上部署的 Linux 和 Windows VM,
mcdc
CLI 支援使用discover vsphere
指令進行遠端執行。 - 對於
mcdc
CLI 可存取的 Linux 機器,您可以使用discover ssh
指令,透過 SSH 執行遠端探索作業。 - 如果
mcdc
CLI 可存取 Windows 機器,您可以使用discover wmi
指令,透過 Windows Management Instrumentation (WMI) 執行遠端探索作業。 - 如果 Linux 和 Windows 機器未連線至
mcdc
CLI,您可以在本機下載及執行客體收集指令碼,然後手動將所收集的資料匯入代管mcdc
CLI 的機器。
客體收集指令碼會執行一系列指令,收集來源機器的相關資訊,並從機器上的多個檔案收集資訊。
事前準備
- 詳閱下載及執行
mcdc
CLI 的需求條件。 - 請詳閱下載及執行訪客收集指令碼的相關規定。
- 完成下載
mcdc
CLI 的步驟。
使用 VMware 工具遠端收集資料
對於在 vSphere 上代管的 VM,mcdc
CLI 可使用 VMware 工具,在 Linux 和 Windows VM 上遠端部署及執行收集指令碼。使用 VMware 工具時,mcdc
CLI 工具會執行以下操作:
- 將收集指令碼上傳至 VM。
- 在 VM 上執行指令碼。
- 下載並匯入結果。
如要遠端收集資料,您需要兩組憑證:
- 傳遞至
mcdc
CLI 的 vCenter 伺服器使用者名稱,用於連線至 vSphere,該使用者必須在 VM 上具備下列權限:- 訪客作業修改
- 訪客作業程式執行
- 訪客作業查詢
- VM 的使用者憑證:
- 在 Windows 上,您必須具備管理員權限。
- 在 Linux 上,您不需要取得 root 存取權,但取得 root 存取權可讓
mcdc
CLI 收集完整評估所需的資料。
如要使用 VMware 工具收集資料,請按照下列步驟操作:
- 登入代管
mcdc
CLI 的 Linux VM。 - 切換至下載
mcdc
CLI 的目錄。 - 確認 VM 已開機。
執行訪客探索:
Linux
./mcdc discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID
Windows
mcdc.exe discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID
更改下列內容:
- VCENTER_USER:vCenter 伺服器使用者
- VM_USER:VM 使用者
- VM_ID:VM 或 MOREF 的名稱
在系統提示時,輸入 VCENTER_USER 和 VM_USER 的密碼。
如要使用 VMware 工具同時從多個 vSphere VM 收集資料,請按照下列步驟操作:
- 登入代管
mcdc
CLI 的 Linux VM。 - 切換至下載
mcdc
CLI 的目錄。 - 確認所有 VM 都已開機。
執行訪客探索:
Linux
./mcdc discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS
Windows
mcdc.exe discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS
請將 TIMEOUT_IN_SECONDS 替換為逾時秒數。
您可以選擇使用
--os-family
旗標,將探索結果限制為 Windows 或 Linux VM,也可以使用--max-parallelism
旗標變更平行處理的層級。按照系統提示輸入 VCENTER_USER 和 VM_USER 的密碼。
您也可以使用
--path
標記,將探索範圍限定為特定 VM,如「執行清單探索」一文中針對 VMware 所述。
您可以在遷移中心中匯出並評估這些收集到的資料,也可以執行離線評估。
透過 SSH 從遠端收集資料
如果託管 mcdc
CLI 的機器具有 SSH 存取權,可連線至目標 Linux 機器 (不支援 Windows 機器),mcdc
CLI 就能透過 SSH 連線至目標機器,收集資料。
使用 SSH 時,mcdc
CLI 會執行以下操作:
- 將收集指令碼上傳至機器。
在機器上執行指令碼,並將機器使用者憑證傳遞至
mcdc
CLI。下載並匯入結果。
支援的 SSH 模式
如果您在 Linux 機器上使用 mcdc
CLI,可以使用兩種模式執行 SSH:
預設:使用
ssh
CLI 機器上的ssh
二進位檔和設定。mcdc
預設模式可使用本機 SSH 設定檔 (例如~/.ssh/config
和~/.ssh/known_hosts
),這些檔案會儲存在本機工作站中。在系統提示時輸入密碼,或使用
sshpass
在指令列中傳遞密碼或私密金鑰檔案密碼字串。例如:sshpass -p password mcdc discover ssh IP_ADDRESS
將 IP_ADDRESS 替換為機器的 IP 位址。
內嵌:使用內建的 SSH 程式庫。如果預設模式在您的環境中發生故障,您可以使用這個模式使用內嵌的 SSH 用戶端。不過,根據預設,它不會使用本機 SSH 設定檔。您可以使用
-i
旗標指定 SSH 私密金鑰檔案。
如果您在 Windows 電腦上使用 mcdc
CLI,系統僅支援嵌入式模式。
執行集合
如要透過 SSH 收集資料,請按照下列步驟操作:
- 登入代管
mcdc
CLI 的 Linux 電腦。 - 切換至下載
mcdc
CLI 的目錄。 收集資料。
Linux
./mcdc discover ssh IP_HOSTNAME
Windows
mcdc.exe discover ssh IP_HOSTNAME
如要探索及收集資料庫資產,請使用
--db-engine
標記 (預覽):Linux
./mcdc discover ssh IP_HOSTNAME --db-engine=DB_ENGINE
Windows
mcdc.exe discover ssh IP_HOSTNAME --db-engine=DB_ENGINE
更改下列內容:
- IP_HOSTNAME:機器的 IP 主機名稱。
- DB_ENGINE:要收集的資料庫引擎。支援的值為
sqlserver
、mysql
、postgresql
。
系統會使用叫用
mcdc
CLI 的使用者 SSH 私密金鑰檔案,進行 SSH 驗證。出現提示時,請輸入 Linux 電腦上的帳戶使用者名稱。收集指令碼會使用這些憑證執行。如果叫用
mcdc
CLI 的使用者 SSH 私密金鑰無法透過使用者名稱向機器進行驗證,系統也會提示您輸入密碼。
使用 SSH 時的其他情境
請參閱下列可能需要修改指令的情況:
如要使用預設模式指定機器使用者,請使用
-u
標記:Linux
./mcdc discover ssh -u USER IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER IP_HOSTNAME
將 USER 替換為機器使用者。
出現提示時,輸入使用者的密碼。
如要指定詳細模式,請使用
-v
標記:Linux
./mcdc discover ssh -u USER -v IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER -v IP_HOSTNAME
如要指定 SSH 私密金鑰檔案,請使用
-i
標記。例如,如要指定.ssh/my_private_key
:Linux
./mcdc discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME
Windows
mcdc.exe discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME
如要在指令列上指定密碼,請使用嵌入模式:
Linux
./mcdc discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME
Windows
mcdc.exe discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME
由於指令的內嵌表單預設不會使用本機 SSH 設定檔,因此請確認您在指令中指定的使用者能夠透過 SSH 存取機器,並且在機器上具有執行收集指令碼的權限。
如要使用內嵌模式指定 SSH 私密金鑰檔案,請使用
-i
標記:Linux
./mcdc discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME
Windows
mcdc.exe discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME
您可以使用
mcdc
CLI 指令指定大部分的 SSH 標記。然後使用-a
或--ssh-args
旗標,將這些旗標傳遞至ssh
指令。例如,如要使用 Socks Proxy:Linux
./mcdc discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME
Windows
mcdc.exe discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME
您可以在遷移中心中匯出並評估這些收集到的資料,也可以執行離線評估。
透過 WMI 從遠端收集資料
如果您想在支援 WMI 的目標 Windows 機器上執行來賓探索,可以在代管 mcdc
CLI 的 Windows 機器上使用 mcdc discover wmi
指令。只有 mcdc
CLI 的 Windows 版本支援 WMI 集合。
使用 WMI 時,mcdc
CLI 會執行以下操作:
- 將收集指令碼上傳至機器。
在機器上執行指令碼,並將機器使用者憑證傳遞至
mcdc
CLI。下載並匯入結果。
如要透過 WMI 收集資料,請按照下列步驟操作:
- 登入代管
mcdc
CLI 的 Windows 機器。 - 切換至下載
mcdc
CLI 的目錄。 收集資料:
mcdc.exe discover wmi IP_HOSTNAME
將 IP_HOSTNAME 替換為機器的 IP 主機名稱。
在提示時輸入憑證。
收集個別 Linux 電腦上的資料
如要在 Linux 機器上本機執行訪客收集作業,可以執行 mcdc-linux-collect.sh
指令碼。接著,您可以將指令碼產生的 tar 檔案複製到代管 mcdc
CLI 的機器中,然後使用 discover import
指令匯入。
您通常會指定 sudo
選項來執行指令碼。您可以選擇使用執行 mcdc
CLI 的使用者權限執行指令碼。不過,指令碼可能無法收集所有必要資料。
- 登入電腦。
- 切換至下載訪客收集指令碼的目錄。
在電腦上執行收集指令碼:
sudo ./mcdc-linux-collect.sh
指令碼會將名為
mcdc-collect-MACHINE_NAME-TIMESTAMP.tar
的 tar 檔案輸出至目前目錄。時間戳記的格式為YYYY-MM-DD-hh-mm
。按一下即可查看訪客收集 tar 檔案格式
tar 檔案的格式如下:
collect.log # Log output of the script files # Directory containing files with their full path from root. For example: |- etc/fstab |- etc/hostname |- etc/network/interfaces |- ... commands # Output of commands run by the script: |- dpkg |- netstat |- ps |- ... found_paths # Text file with the list of installation directories machinename # Text file with machine name ostype # Text file with operating system type (Linux) timestamp # Text file with collection timestamp version # Text file with the version of the script
您可以選擇傳遞
--output
引數,並指定要儲存 tar 檔案的路徑。將收集到的資料從目標機器複製到主機。
在主機上匯入所收集的資料:
Linux
./mcdc discover import PATH_TO_TAR
Windows
mcdc.exe discover import PATH_TO_TAR
將 PATH_TO_TAR 替換為 tar 檔案的路徑。
您可以在遷移中心中匯出並評估這些收集到的資料,也可以執行離線評估。
收集個別 Windows 機器上的資料
如要在 Windows 電腦上本機執行訪客收集作業,可以執行 mcdc-windows-collect.ps1
指令碼。接著,您可以將指令碼產生的 ZIP 檔案複製到代管 mcdc
CLI 的機器中,然後使用 discover import
指令匯入。
- 登入電腦。
- 使用「以系統管理員身分執行」選項開啟 PowerShell。
- 切換至下載
mcdc
CLI 的目錄。 在電腦上執行收集指令碼:
powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1
指令碼會將名為
mcdc-collect-MACHINE_NAME-TIMESTAMP.zip
的 ZIP 檔案輸出至目前目錄。您可以選擇加入輸出路徑,指定不同的位置:
.\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip
在主機上匯入所收集的資料:
Linux
./mcdc discover import PATH_TO_TAR
Windows
mcdc.exe discover import PATH_TO_TAR
將 PATH_TO_TAR 替換為 tar 檔案的路徑。
您可以匯出收集到的資料,並在遷移中心線上評估,或執行離線評估。
後續步驟
- 瞭解如何執行 IP 範圍掃描。
- 瞭解如何將收集到的資料匯出至 Migration Center。