VMware vSphere Client 인터페이스에서는 기본적으로 가상 머신의 이름으로만 검색할 수 있습니다. 하지만 실무에서는 IP 주소나 MAC(NIC 하드웨어) 주소 같은 다른 정보만 알고 있을 때 특정 가상 머신을 찾아야 하는 경우가 자주 발생합니다.
PowerCLI로 MAC 주소 기준 VM 검색하기
이럴 때 VMware PowerCLI를 사용하면 다양한 가상 머신 속성을 기준으로 손쉽게 검색할 수 있습니다.
먼저 PowerCLI 콘솔을 실행하고 아래 명령어로 vCenter 서버 또는 ESXi 호스트에 연결합니다:
Connect-VIServer vcenter-hq.woshub.com -User administrator
MAC 주소로 가상 머신을 찾으려면 다음 명령어를 사용합니다:
$vmMAC="00:52:32:DD:12:91"
Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress –eq $vmMAC} | Select-Object Parent,Name,MacAddress
명령어를 실행하면 해당 MAC 주소를 가진 가상 머신의 이름과 네트워크 어댑터 정보가 반환됩니다.
ESXi SSH에서 VMX 구성 파일 직접 검색하기
PowerCLI 대신 VMFS 데이터스토어에 저장된 가상 머신 구성 파일(VMX)에서 특정 MAC 주소를 직접 검색할 수도 있습니다. SSH로 ESXi 호스트에 접속한 뒤 아래 명령어를 실행하세요:
find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:52:32:DD:12:91" "$i" && echo "$i"; done
IP 주소로 VM 검색하기 (VMware Tools 필요)
가상 머신에 VMware Tools가 설치되어 있다면 게스트 운영체제의 IP 주소로도 검색할 수 있습니다. 예를 들어 특정 IP 주소를 가진 VM을 찾으려면 다음 명령어를 사용합니다:
$vmIP="192.168.1.102"
Get-VM * | where-object{$_.Guest.IPAddress -eq $vmIP}|select Name, VMHost, PowerState,GuestId,@{N="IP Address";E={@($_.guest.IPAddress[0])}}|ft
IP 주소 일부만 알고 있는 경우
IP 주소의 일부만 알고 있다면 아래 명령어로 패턴 매칭 검색을 수행할 수 있습니다:
$vmIP="192.168."
Get-VM * | where-object{$_.Guest.IPAddress -match $vmIP}|select Name, VMHost, PowerState,@{N="IP Address";E={@($_.guest.IPAddress[0])}},@{N="OS";E={$_.Guest.OSFullName}},@{N="Hostname";E={$_.Guest.HostName}}|ft
이 명령어는 입력한 패턴과 일치하는 IP 주소를 가진 모든 가상 머신의 이름, 호스트, 전원 상태, 설치된 운영체제 종류, 호스트명 등을 목록 형태로 한눈에 보여줍니다.