3

I looked and looked but probably overlooked . I have a vsphere cloud with over 300 virtual machines. Each machine name as it appears in the vsphere client is actually the hostname of each machine (I have done this manually). Those machines sometimes have to change their hostname. At this time I hope there is a way to obtain/get/read the guest machine name from the machine itself, and then if there is a mismatch, then I'll know and modify the machine name when needed.

So, vmware-toolbox-cmd or other tool (from the linux open-vm-tools) can retrieve that info, the machine name ?

Let's take an example. I have a vm machine with it;s hostname a22.test.com I can ssh onto that machine. But on the vsphere it's name is b34.test2.com or some other name. And I have 300+ machines in this mismatched state. A vm name does not correspond to the hostname.

  • Do you have VMware Tools installed on all VMs? You will need to prepare for duplicate hostnames (e.g. when you clone a VM and the clone retains the old hostname, etc.) – Mircea Vutcovici Jun 24 '20 at 21:39

3 Answers3

2

You cannot do this with VMware Tools alone from inside the VM. You need to connect to and query vCenter, e.g. with PowerCLI. And that you can do from any machine on the network. The following PowerCLI code should do the trick:

Connect-VIServer vcenter-address
foreach ($vm in (get-vm)) { $vm.Name + ": " + $vm.ExtensionData.Guest.Hostname }

That shows the vCenter display name and the internal host name (as reported by VMware Tools) for each VM. So this requires VMware Tools running in the VMs.

PowerCLI is also available for Powershell Core, so you can also run this on Linux if you do not have any Windows machines available.

VFrontDe
  • 1,478
  • 8
  • 11
0

You can install PowerCLI and then use the Get-VMGuest command.

Have a look at this also, to get a list of all VMs, name, hostname, IP: get list of VMs

Krackout
  • 1,559
  • 6
  • 17
0

With out connecting to the vCenter.

dmidecode -s system-serial-number
VMware-42 39 51 fb 85 54 7c 91-ac 25 e0 d5 f7 6b 13 b2

This serial number is vCenter's "BIOS UUID" for the guest VM, albeit in a slightly different format:

Bios UUID     :  423951fb-8554-7c91-ac25-e0d5f76b13b2

At least with the UUID of the machine, you can search for what you want to find. This is mostly a problem from figuring out which machine maps to what in the vCenter.

Taken from this answer from this question

nelaaro
  • 584
  • 4
  • 9
  • 25