ESXi:为每台计算机自动分配vnc端口

时间:2015-07-23 04:24:35

标签: virtual-machine vmware vnc esxi

我需要在ESXi主机上运行VM的远程控制台。我需要为此目的服用VNC。为此,我需要使用下面给出的设置手动或以编程方式(当然,通过编辑VMX文件)为每个VM分配TCP端口。

remotedisplay.vnc.port="5900"
remotedisplay.vnc.enabled="true"
remotedisplay.vnc.password = "yourpassword"

是否有任何机制(最好是psphere API)我可以告诉ESX为所有机器或单机自动分配端口?

谢谢&问候,
内甚

PS。我使用Ubuntu 14并希望通过浏览器连接VM。

2 个答案:

答案 0 :(得分:2)

这是我使用pysphere

开展的工作
>>> from pysphere import VIServer
>>> s = VIServer()
>>> s.connect('10.11.100.220', 'root', 'password')
>>> vm = s.get_vm_by_name("VMNAME")
>>> settings = {'remotedisplay.vnc.port': '8949', 'remotedisplay.vnc.enabled' : 'true'}
>>> vm.set_extra_config(settings)
>>> s.disconnect()

答案 1 :(得分:0)

你可以做的是ssh到esx服务器并附加带有这些属性的vmx文件。

www.domain.com

或在一个命令中

echo -e "RemoteDisplay.vnc.enabled = true\nRemoteDisplay.vnc.port = 5900\nRemoteDisplay.vnc.password = \"yourpassword\"" >> /vmfs/volumes/YOURDATASTORE/YOURVMNAME/YOURVMNAME.vmx

如果那不是您的vmx路径,您也可以使用

动态获取它
sshpass -p PASSWORD ssh root@10.54.140.145 "echo -e \"RemoteDisplay.vnc.enabled = true\nRemoteDisplay.vnc.port = 5900\nRemoteDisplay.vnc.password = \"yourpassword\"\" >> /vmfs/volumes/YOURDATASTORE/YOURVMNAME/YOURVMNAME.vmx"

或全部在一行

vim-cmd vmsvc/getallvms | grep VMNAME | awk '{print $4}'