vmware api开发之克隆虚拟机

  • 时间:
  • 浏览:2
  • 来源:大发快3官方—UU快三

def get_obj(content, vimtype, name): #把群克隆源的虚拟机实例化

虚拟机网络管理

    else:

    clonespec.location = relospec

    relospec = vim.vm.RelocateSpec()

    if resource_pool:

import cgi, cgitb

    vm = get_obj(content, [vim.VirtualMachine], randomname)

流程 :前端发起请求,提交的参数有 源模板id,虚拟机的配置,后端提交请求到vcenter,提交成功说说,,给个反馈给前端,并在后台启用群克隆虚拟机的多多守护进程 ,后台正确处理用,celery实现,虚拟机群克隆完成后,虚拟os中间有个开机脚却说我的管理端注册下ip地址

    vm.PowerOn()

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

    else:

代码如下

    cpunum=hardwareconfiglist[int(flavor)][0]

    for i in range(0,int(num)):

    si = None

    relospec.datastore = datastore

    atexit.register(Disconnect, si)

        cluster_name, resource_pool, power_on,cpunum,memsize):

            obj = c

        datacenter_name, vm_folder, datastore_name,

                     sslContext=context)

            content, [vim.Datastore], template.datastore[0].info.name)

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

    template = get_obj(content, [vim.VirtualMachine], template)

    vm.CreateSnapshot("fromstart","this created when it is been cloned by system",False,False) #群克隆好了创建三个 多快照,以便实现重装系统的功能

    return obj

from celery import Celery

platforms.C_FORCE_ROOT = True

    spec.memoryMB=memsize

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

    template = None

    if datastore_name:

        datastore = get_obj(

import random

    clonespec.powerOn = power_on

虚拟机增删磁盘;

公司要买车人开发私有云管理平台,我这边负责vmware每种的后台接口编写。

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

from celery import platforms

from pyVim.connect import SmartConnect, Disconnect

                obj = c

    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)

    context.verify_mode = ssl.CERT_NONE

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

            content, template, si,

                break

zabbix 接受转发esxi的报警信息

def clone_vm(   #群克隆虚拟机,群克隆出来的虚拟机名字是随机,

        destfolder = datacenter.vmFolder

    memsize=hardwareconfiglist[int(flavor)][1]

        resource_pool = cluster.resourcePool

    cluster = get_obj(content, [vim.ClusterComputeResource], cluster_name)

虚拟机 html5的console界面

我把 群克隆虚拟机,虚拟机 html5的console界面,虚拟机快照管理 这几只代码的放出,水平有限,大神勿喷,怎么让有每种涉及隐私的地方做了正确处理,供有人参考下贴出的却说第一版,没有错误捕捉

        datastore = get_obj(content, [vim.Datastore], datastore_name)

首先介绍群克隆虚拟机

        resource_pool = get_obj(content, [vim.ResourcePool], resource_pool)

    spec.numCPUs=cpunum

        content, template,  si,

import ssl

        else:

        content.rootFolder, vimtype, True)

    clonespec = vim.vm.CloneSpec()

from pyVmomi import vim

    template = templates[str(templateid)]

zabbix 监控 esxi的磁盘使用率 

        destfolder = get_obj(content, [vim.Folder], vm_folder)

        clone_vm(

    for c in container.view:

    obj = None

    relospec.pool = resource_pool

主要实现有虚拟机开关机撤消;

        if name:

    if vm_folder:

虚拟机快照增删还原;

            "", "",

import argparse

    randomname=get_hostname()

    wait_for_task(task)

import atexit

    content = si.RetrieveContent()

            "", False,cpunum,memsize)

    hardwareconfiglist={1:[2,8*1024],2:[4,16*1024],3:[8,32*1024]}

    # if None, get the first one

celery = Celery('tasks', broker='redis://:########redis连接信息/0')

            break

    else:

            "存储名字", '集群名字 ',

                     port=443,

    container = content.viewManager.CreateContainerView(

    task = template.Clone(folder=destfolder, name=randomname, spec=clonespec)

    datacenter = get_obj(content, [vim.Datacenter], datacenter_name)

import getpass

def action(num,flavor,templateid):  #主函数 被Celery调用 

            if c.name == name:

    vm.ReconfigVM_Task(spec=spec) #设置群克隆好的虚拟机的cpu 和 内存

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

    spec = vim.vm.ConfigSpec()