vmware api开发之html5的虚拟机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


wKioL1dyb17w9coaAACH67ohdBU841.png-wh_50

代码如下 

  

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



本文转自 superbigsea 51CTO博客,原文链接:http://blog.51cto.com/superbigsea/1793768

相关文章
|
30天前
|
Linux 虚拟化 iOS开发
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
115 35
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
|
30天前
|
Linux 虚拟化 iOS开发
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
88 34
Rocky Linux 10 aarch64 OVF (sysin) - Apple silicon VMware 虚拟机模板
|
30天前
|
Linux 虚拟化 iOS开发
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
90 27
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
|
25天前
|
人工智能 安全 虚拟化
企业级Win11纯净部署指南|VMware虚拟机安装+GPT分区优化+绕过限制详解(小白必看)
Windows 11 是微软推出的新一代操作系统,以其直观交互和 AI 技术为核心升级亮点。界面采用圆角设计与居中任务栏布局,支持多窗口贴靠分屏、虚拟桌面功能,大幅提升多任务处理效率。系统深度集成了 Copilot 智能助手,提供语音写作、照片编辑等便捷功能,并通过 DirectStorage 和 DirectX 12 Ultimate 技术优化游戏体验。本文详细介绍 Windows 11 的下载、U盘制作及安装步骤,帮助用户快速上手全新系统。
154 21
|
2月前
|
Linux 虚拟化 iOS开发
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
110 29
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
|
2月前
|
存储 Linux 虚拟化
超详细!VMware虚拟机迁移操作教程
为VMware虚拟机迁移提供从0到1的详尽操作指导
465 1
超详细!VMware虚拟机迁移操作教程
|
2月前
|
API 虚拟化
撤了!6天搬走500台VMware虚拟机
VMware到期在即,这个方案紧急时刻力挽狂澜,帮他们高效完成业务迁移。
|
2月前
|
JSON 数据挖掘 API
1688API最新指南:商品详情接口接入与应用
本指南介绍1688商品详情接口的接入与应用,该接口可获取商品标题、价格、规格、库存等详细信息,适用于电商平台开发、数据分析等场景。接口通过商品唯一标识查询,支持HTTP GET/POST请求,返回JSON格式数据,助力开发者高效利用1688海量商品资源。
|
2月前
|
JSON 数据挖掘 API
京东API接口最新指南:店铺所有商品接口的接入与使用
本文介绍京东店铺商品数据接口的应用与功能。通过该接口,商家可自动化获取店铺内所有商品的详细信息,包括基本信息、销售数据及库存状态等,为营销策略制定提供数据支持。此接口采用HTTP请求(GET/POST),需携带店铺ID和授权令牌等参数,返回JSON格式数据,便于解析处理。这对于电商运营、数据分析及竞品研究具有重要价值。
|
3月前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。

热门文章

最新文章