我需要在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。
答案 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}'