本文档介绍了运行 mcdc
CLI 提供的不同访客发现方法的步骤。
概览
借助客机发现功能,您可以扫描并收集有关机器上正在运行的应用的数据,包括虚拟机 (VM) 实例和物理服务器。它还会收集有关机器配置、硬件、网络以及打开的文件、服务和进程的数据。
对于在 Migration Center 资产识别客户端 CLI 不支持清单发现的平台(例如在 Azure 上运行的虚拟机或在本地运行的机器)上运行的机器,以及为了全面评估在 VMware 和 AWS 上运行的虚拟机,您可以运行客机发现。客机发现功能使用客机收集脚本来收集有关机器的数据,并将该数据写入客机收集 tar 文件(适用于 Linux 机器)或 zip 文件(适用于 Windows 机器)。
托管 mcdc
CLI 的机器会将脚本上传到目标机器,运行该脚本,然后下载结果。您可以在目标机器上本地运行脚本,也可以远程运行脚本。您可以根据自己的基础架构,选择通过以下方式使用 mcdc
CLI:
- 对于在 VMware 上部署的 Linux 和 Windows 虚拟机,
mcdc
CLI 支持使用discover vsphere
命令远程执行。 - 对于可通过
mcdc
CLI 访问的 Linux 机器,您可以使用 SSH 通过discover ssh
命令执行远程发现。 - 对于可通过
mcdc
CLI 访问的 Windows 机器,您可以使用 Windows Management Instrumentation (WMI) 通过discover wmi
命令执行远程发现。 - 对于未连接到
mcdc
CLI 的 Linux 和 Windows 机器,您可以下载并在本地运行客户机收集脚本,然后手动将收集的数据导入到托管mcdc
CLI 的机器。
客户端收集脚本会运行一系列命令以收集源计算机的相关信息,同时还从计算机上的多个文件收集信息。
准备工作
- 查看下载和运行
mcdc
CLI 的要求。 - 查看下载和运行客机收集脚本的要求。
- 完成下载
mcdc
CLI 的步骤。
使用 VMware 工具远程收集数据
对于托管在 vSphere 上的虚拟机,mcdc
CLI 可以使用 VMware 工具在 Linux 和 Windows 虚拟机上远程部署和运行收集脚本。使用 VMware 工具时,mcdc
CLI 工具会执行以下操作:
- 将收集脚本上传到虚拟机。
- 在虚拟机上运行脚本。
- 下载并导入结果。
需要使用两组凭据才能远程收集数据:
- 传递给
mcdc
CLI 以连接到 vSphere 的 vCenter 服务器用户名,必须在虚拟机中具有以下权限:- 客机操作修改
- 客机操作程序执行
- 客机操作查询
- 虚拟机的用户凭据:
- 在 Windows 中,您必须拥有管理员权限。
- 在 Linux 中,根权限不是必需的,但根权限能让
mcdc
CLI 收集完整评估所需的数据。
如需使用 VMware 工具收集数据,请按照以下步骤操作:
- 登录托管
mcdc
CLI 的 Linux 虚拟机。 - 切换到您下载
mcdc
CLI 的目录。 - 确保虚拟机已开机。
运行客机发现:
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_ID:虚拟机的名称或 MOREF
系统提示时,输入 VCENTER_USER 和 VM_USER 的密码。
如需使用 VMware 工具同时从多个 vSphere 虚拟机收集数据,请执行以下操作:
- 登录托管
mcdc
CLI 的 Linux 虚拟机。 - 切换到您下载
mcdc
CLI 的目录。 - 确保所有虚拟机都已开启。
运行客机发现:
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 虚拟机,也可以使用--max-parallelism
标志更改并行级别。当系统提示时,输入 VCENTER_USER 和 VM_USER 的密码。
您还可以使用
--path
标志将发现范围限定为特定虚拟机,如运行资产清点发现中针对 VMware 所述。
您可以在迁移中心在线导出并评估这些收集的数据,也可以运行离线评估。
通过 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 的用户的 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 代理,请运行以下命令: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。