vcenter 6.x 生成预验证的 html5 vm console链接
来源:互联网 发布:软件开发简介 编辑:程序博客网 时间:2024/06/05 23:44
因工作需要,需要生成一个console链接来给客户使用。当时主要使用的是pyvmomi来实现的。
pyvmomi提供了一些简单的例子,可以在 https://github.com/vmware/pyvmomi-community-samples 下载
刚好里面有一个generate_html5_console.py 是专门用来生成vm console链接的,可以直接运行。
运行后可以获得一个链接,本来以为成功了,结果发现并不能使用(返回的网页说验证不成功)。然后,百度,google了一下。发现这个例子在vcenter 5.x能使用,6.x版本不能使用。
经过研究后发现,目前不能通过生成vcenter的url直接获得console(这种方法必须登陆vcenter)。但可以通过预验证的url直接连上虚拟机所在的物理机上的esxi来获得console.
第一步生成预验证的url
可通过修改 generate_html5_console.py 来达成目的,下面是修改后的代码
import atexitimport OpenSSLimport sslimport sysimport timefrom pyVim.connect import SmartConnectNoSSL, Disconnectfrom pyVmomi import vimfrom tools import clidef get_vm(content, name): try: name = unicode(name, 'utf-8') except TypeError: pass vm = None container = content.viewManager.CreateContainerView( content.rootFolder, [vim.VirtualMachine], True) for c in container.view: if c.name == name: vm = c break return vmdef get_args(): """ Add VM name to args """ parser = cli.build_arg_parser() parser.add_argument('-n', '--name', required=True, help='Name of Virtual Machine.') args = parser.parse_args() return cli.prompt_for_password(args)def get_url(host,user,password,name,port=443): """ Simple command-line program to generate a URL to open HTML5 Console in Web browser """ try: si = SmartConnectNoSSL(host=host, user=user, pwd=password, port=int(port)) except Exception as e: print 'Could not connect to vCenter host' print repr(e) sys.exit(1) atexit.register(Disconnect, si) content = si.RetrieveContent() vm = get_vm(content, name) x = vm.AcquireTicket("webmks") url = "wss://" + str(x.host) +":" + str(x.port) + "/ticket/" + str(x.ticket) return url
第二步将上一步获得的url填入(替换掉红色部分):
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Console</title></head><body><link rel="stylesheet" type="text/css" href="css/wmks-all.css"/><script type="text/javascript" src="jquery.min.js"></script><script type="text/javascript" src="jquery-ui.min.js"></script><script type="text/javascript" src="wmks.min.js" type="text/javascript"></script><div id="wmksContainer" style="position:absolute;width:100%;height:100%"></div><script> var wmks = WMKS.createWMKS("wmksContainer", {}).register(WMKS.CONST.Events.CONNECTION_STATE_CHANGE, function (event, data) { if (data.state == WMKS.CONST.ConnectionState.CONNECTED) { console.log("connection state change : connected"); }});wmks.connect("wss://192.168.3.1:443/ticket/d8e1a3359b2323fd86");</body></html>
打开该html文件即可。
上面的方法来自 html-console-sdk-210-programmer-guide.pdf,
相关文件可以去下面下载
链接: https://pan.baidu.com/s/1bpLdbcz 密码: n7nj
运行generate_html5_console.py来生成url
将生成的url替换console文件夹中的console.html中的url。
浏览器打开console.html即可
注意:很有可能打开之后无法链接到wss://192.168.3.1:443/ticket/fdlksalfjf fjdskf,原因是该网站的证书不被浏览器支持。可以先在浏览器打开https://192.168.3.1并信任ssl证书即可。
即使做到这一步也有很大的问题,如安装exsi的机器肯定在内网里,所以,我们无法在外网访问这台机器。下一章介绍如何通过 nginx做代理服务器来达到我们的目的。
参考文章:http://vittoriop77.blogspot.it/2016/03/vsphere-6-html-console.html
- vcenter 6.x 生成预验证的 html5 vm console链接
- 部署在VM上的vCenter迁移
- Html5生成验证码
- vsphere 4.x 生成 console url
- 基于netty的wsproxy 访问xenserver的vm console
- 基于netty的wsproxy 访问xenserver的vm console
- HTML5的链接
- 基于自签名的X.509数字证书生成及验证
- Standard 1.1.x VM与Standard VM的区别
- Standard 1.1.x VM与Standard VM的区别
- Standard 1.1.x VM与Standard VM的区别
- html5的代码验证
- 通过chrome的console验证xpath、css
- 通过chrome的console验证xpath、css
- weblogic9.x的WLDF console监控
- Eclipse Console 异常链接的链接错误问题!
- vCenter的安装部署
- vcenter
- 图像插值算法之双三次插值
- 激光雷达LIDAR的应用
- 分布式Session的几种实现方式
- 结构体
- Linux目录结构和常用命令
- vcenter 6.x 生成预验证的 html5 vm console链接
- 关于node中的this,module,exports
- Vmware虚拟机使用常见问题
- 多元线性回归分析预测法概述
- [C#] 编程控制笔记本蓝牙与外部蓝牙设备通信
- Intel WebRTC Collaboration Suite 服务端部署及客户端配置说明
- Caffe训练源码基本流程
- 深入理解Java闭包概念
- CGAL4.8.1编译日志