vmware api开发之html的虚拟机console

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写。

主要基于vmware官方的 python 接口 pyvmomi进行二次封装,

主要实现有虚拟机开关机注销;

虚拟机增删磁盘;

虚拟机快照增删还原;

虚拟机 html5的console界面

虚拟机网络管理

zabbix 监控 esxi的磁盘使用率

zabbix 接受转发esxi的报警信息

我把 克隆虚拟机,虚拟机 html5的console界面,虚拟机快照管理 这几个代码的放出,水平有限,大神勿喷,并且有部分涉及隐私的地方做了处理,供大家参考下,贴出的只是第一版,没有错误捕捉

需要环境:vcenter 5.1-6.0, python3.5 ,django 1.8 ,redis,mysql,celery(python 异步后台任务)等

第二个介绍展示html5的虚拟机console

只适用于vc ,5.x 不适用于6.x,6.x改了登陆验证方式 暂时还没搞定

过程,收到前端请求的,找到对应虚拟机,生成sessionTicket和 thumbprint,

拼接对应的网址,当作一个 HttpResponseRedirect 返回前端

先上下效果

输入 http://10.20.11.4:8001/viewconsole.py?IP=10.20.13.158

代码如下

import atexit

import ssl

import sys

import time

import OpenSSL

import os

from pyVim.connect import SmartConnect, Disconnect

from pyVmomi import vim

from django.http import HttpResponse

from django.http import HttpResponseRedirect

def viewconsole(request):

vmip = request.GET.get(‘IP‘)

respone=main(vmip)

return HttpResponseRedirect(a)

return HttpResponse(a)

def get_vm(content, name): 实例化虚拟机

vm = None

container = content.viewManager.CreateContainerView(

content.rootFolder, [vim.VirtualMachine], True)

for c in container.view:

if c.name == name:

vm = c

break

return vm

def main(vmip):

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)

context.verify_mode = ssl.CERT_NONE

si = SmartConnect(host="######",

user="############",

pwd="############",

port=443,sslContext=context)

atexit.register(Disconnect, si)

content = si.RetrieveContent()

vm = get_vm(content, "{0}".format(vmip))

vm_moid = vm._moId

vcenter_data = content.setting

vcenter_settings = vcenter_data.setting

console_port = ‘7331‘

for item in vcenter_settings:

key = getattr(item, ‘key‘)

if key == ‘VirtualCenter.FQDN‘:

vcenter_fqdn = getattr(item, ‘value‘)

session_manager = content.sessionManager

session = session_manager.AcquireCloneTicket()

vc_cert = ssl.get_server_certificate(("vc的ip",443))

vc_pem = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM,

vc_cert)

vc_fingerprint = vc_pem.digest(‘sha1‘)

url="http://vc的ip:7331/console/?vmId={2}&vmName={3}&host={4}&sessionTicket={5}&thumbprint={6}".format("",console_port,vm_moid,vmip,vcenter_fqdn,session,vc_fingerprint.decode())

return url

时间: 2024-08-01 10:46:21

vmware api开发之html的虚拟机console的相关文章

ios开发之-windows下面虚拟机运行osx,以及xcode

下载vmware osx镜像 https://kickass.to/os-x-mavericks-10-9-retail-vmware-image-t7981468.html (还有个链接下载不了https://thepiratebay.se/torrent/8288683/OS_X_Mountain_Lion_10.8.3_VMware_Image_w__AMD_Support)

Android学习笔记----天地图API开发之UnsatisfiedLinkError

由于在jniLibs目录下移除了x86的相关so文件,后来又因为需要在PC模拟器上调试,将该文件夹恢复后,增加了天地图的sdk,却忘记将libMapEngine.so文件同时拷贝至x86目录下,导致如下错误: 07-11 06:50:02.684 2092-2092/com.yeahgis.dczs E/art﹕ No implementation found for int com.tianditu.maps.AndroidJni.initcallback(java.lang.Object,

Google glass Mirror app开发之HTML布局之标签篇

$_[.=.]  原谅我不太会写标题.. 谷歌眼镜开发 之 Mirror api开发之 HTML布局之 css样式 之xxx... 好了,进入正题,在https://developers.google.com/glass/tools-downloads/playground中可以实时地预览效果 CSS样式文件:https://mirror-api-playground.appspot.com/assets/css/base_style.css Mirror API - Timeline:http

vmware api开发之克隆虚拟机

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写. 主要基于vmware官方的 python 接口 pyvmomi进行二次封装, 主要实现有虚拟机开关机注销: 虚拟机增删磁盘: 虚拟机快照增删还原: 虚拟机 html5的console界面 虚拟机网络管理 zabbix 监控 esxi的磁盘使用率 zabbix 接受转发esxi的报警信息 我把 克隆虚拟机,虚拟机 html5的console界面,虚拟机快照管理 这几个代码的放出,水平有限,大神勿喷,并且有部分涉及隐私的地方做

Web开发之RSET API

REST介绍 如果要说什么是REST的话,那最好先从Web(万维网)说起. 什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了.总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web. 那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标

HTML5开发之旅WebSockets API使用篇(4)

WebSocket API是下一代客户端-服务器的异步通信方法.前面有三篇文章已经对WebSocket有了一些介绍,这里我总结了一下.我在使用WebSockets API过程中遇到的问题. 1.检测浏览器是否支持HTML5 WebSocket 在使用HTML5 WebSocket API之前,首先需要确认浏览器的支持情况.如果浏览器不支持,我们可以提供一些替代信息,提示用户升级浏览器或者更换浏览器.下面的代码是检测浏览器支持情况的一种方法: 1 <!DOCTYPE html> 2 <ht

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

vmware api开发之快照管理

公司要自己开发私有云管理平台,我这边负责vmware部分的后台接口编写. 主要基于vmware官方的 python 接口 pyvmomi进行二次封装, 主要实现有虚拟机开关机注销: 虚拟机增删磁盘: 虚拟机快照增删还原: 虚拟机 html5的console界面 虚拟机网络管理 zabbix 监控 esxi的磁盘使用率 zabbix 接受转发esxi的报警信息 本文展示快照功能,快照其实是一个很小的功能,主要是让大家了解下vmware快照的接口,网上没有干过我这个事情,中间有个遍历的算法 先上图

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者: