记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

通过非XenCenter方式连接到XenServer各个VM的VNC本地界面


下面,就是我们在线上所使用的脚本,只需要你本地安装有一个VNC客户端就可以了。

获取本地VM列表
# ./getvnc

1Usage: ./getvnc vm_name
2VMs found:
3idc2-server1                    
4idc2-server2

获取指定VM的VNC端口号
# ./getvnc idc2-server2

1run this on laptop and connect via vnc to localhost:5903
2--> ssh -L 5903:localhost:5903 root@10.100.1.30

接下来,直接在本地运行"ssh -L 5903:localhost:5903 root@10.100.1.30";
再通过VNC客户端连接"localhost:5903"就可以了。

脚本代码:

 
#!/bin/bash

vm=$1
if [ -z ${vm} ]; then
  echo "Usage: $0 vm_name"
  echo "VMs found:"
  xl list-vm | awk '{print $3}' | grep -vw name
  exit 1
fi

xe vm-list params=name-label name-label=${vm} | grep ${vm} > /dev/null
if [ $? -gt 0 ]; then
  echo "Error: invalid VM name"
  exit 1
fi

host=$(xe vm-list params=resident-on name-label=${vm} | grep resident-on | awk '{print $NF}')
dom=$(xe vm-list params=dom-id name-label=${vm} | grep dom-id | awk '{print $NF}')
port=$(xenstore-read /local/domain/${dom}/console/vnc-port)
ip=$(xe pif-list management=true params=IP host-uuid=${host} | awk '{print $NF}')

echo "run this on laptop and connect via vnc to localhost:${port}"
echo "--> ssh -L ${port}:localhost:${port} root@${ip}"

 


转载请标明出处【非XenCenter方式连接到XenServer各个VM的VNC本地界面】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论