![如何从来宾操作系统确定 vSphere 虚拟机名称?](https://linux22.com/image/156038/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%9D%A5%E5%AE%BE%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%A1%AE%E5%AE%9A%20vSphere%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
有没有办法从 Linux 虚拟机确定 vSphere 虚拟机 ID 或名称或 UUID?我拥有来宾的管理访问权限,并且希望通过 vCenter API 协调来宾和 vCenter 之间的一些维护操作。要使用 vCenter API,我需要确定正在运行的虚拟机。
对于一次性操作,我可以从 vCenter GUI 或 API 找到虚拟机的信息,因为我可以解释虚拟机命名约定,但我希望能够从来宾操作系统开始编写这些操作的脚本。基本上,给定一个来宾 VM:从来宾确定 VM 的 vSphere ID,然后使用该 ID 通过 vCenter API 操作 VM。
我读到有一种方法可以在每个虚拟机管理程序主机上执行 cron 脚本,以在每个正在运行的来宾上设置 guestinfo 变量,然后可以通过 open-vm-tools 从来宾访问这些变量。对我来说,获得虚拟机管理程序主机本身的管理员访问权限来安装这样的脚本可能很困难,因此我希望它们可能是一种更通用的方式。
答案1
我们找到了一种方法来做到这一点。
关于嘉宾:
#dmidecode -s system-serial-number
VMware-42 39 51 fb 85 54 7c 91-ac 25 e0 d5 f7 6b 13 b2
此序列号是 vCenter 的来宾虚拟机的“BIOS UUID”,尽管格式略有不同:
Bios UUID : 423951fb-8554-7c91-ac25-e0d5f76b13b2