本文說明如何執行 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 機器,可以使用 SSH 搭配discover ssh
指令執行遠端探索。 - 如果是可透過
mcdc
CLI 存取的 Windows 電腦,您可以使用 Windows Management Instrumentation (WMI) 搭配discover 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 的下列權限:- 修改營業時間
- 執行訪客作業程式
- 訪客作業查詢
- 虛擬機的使用者憑證:
- 在 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,如「執行清查探索」一節所述。
您可以在遷移中心線上匯出及評估收集到的資料,也可以執行離線評估。
透過 SSH 從遠端收集資料
如果託管 mcdc
CLI 的機器具有目標 Linux 機器的 SSH 存取權 (不支援 Windows 機器),則 mcdc
CLI 可以透過 SSH 連線至目標機器,以收集資料。
使用 SSH 時,mcdc
CLI 會執行下列操作:
- 將收集指令碼上傳至機器。
在機器上執行指令碼,並將機器使用者憑證傳遞至
mcdc
CLI。下載及匯入結果。
支援的 SSH 模式
如果您在 Linux 機器上使用 mcdc
CLI,可以透過兩種模式執行 SSH:
預設:使用
mcdc
CLI 電腦上的ssh
二進位檔和設定。預設模式會預設使用本機 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 的使用者安全殼層私密金鑰檔案,進行安全殼層驗證。系統提示時,請輸入 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
如要指定安全殼層私密金鑰檔案,請使用
-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
指令。WMI 集合僅支援 Windows 版 mcdc
CLI。
使用 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。