使用python管理vsphere平台之创建和克隆虚拟机-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1637537
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 虚拟化

2019-03-14 16:09:26

使用python管理vsphere平台


新到一个公司,需要做一个系统来管理现有的vsphere平台,以此实现对虚拟机的自动化管理。


vsphere平台是vmware公司推出的虚拟化云管理平台(vmware主要靠这类产品赚钱),可以动态增加主机节点,主机上运行esxi专属系统,
所有的主机节点由vcenter管理,本人用的这段时间内基本没因为vmware的原因出现过问题,是中小企业作为底层架构的必备之选。


简单介绍下各组件  
     exsi: 物理主机节点,虚拟机就是在这上面运行的。
     vcenter: 管理所有节点,管理中心。           
vmotion:存储设备,成为云平台的就看有没有他了(贵)
   datacenter: 数据中心,根据自己情况自定义,就是一群节点的分组
datastore:存储,每个节点的硬盘
    network: 自定义跟物理网络对接

主要从创建,克隆,查询,修改配置,监控几个方面简单的介绍。
本篇主要介绍创建和克隆,之所以一起介绍,主要是因为这边创建的方式是从模板创建,实则跟克隆有异曲同工之处。


环境    centos7,python3.5,pyvmomi==6.7.1.2018.12


点击(此处)折叠或打开

  1. import atexit
  2. from pyvmomi import vim, vmodl
  3. from pyvim.connect import smartconnectnossl, disconnect
  4.    #登录和初始化,默认使用无证书方式登录
  5.    si = smartconnectnossl(host=host, user=user, pwd=pwd, port=port) 
  6.    atexit.register(disconnect, si)
  7.    content = si.retrievecontent()
  8.    vchtime = si.currenttime()
       


       
        先定义一个搜索函数,可以根据名字搜索各种类型的资源,非常使用,里面的变量都是上面初始化后继承的。
     

点击(此处)折叠或打开

  1. def get_obj(vimtype, name):
  2.         obj = none
  3.         container = self.content.viewmanager.createcontainerview(
  4.             content.rootfolder, vimtype, true)
  5.         for c in container.view:
  6.             if c.name == name:
  7.                 obj = c
  8.                 break
  9.         return obj
     
    开始从模板部署虚拟机
    

点击(此处)折叠或打开


  1. def  clone_vm(*args,**kwargs):  
  2.         #获取模板的对象,使用了上面的搜索函数   
  3.         template =self.get_obj([vim.virtualmachine],kwargs.get("template"))
  4.         #定义虚拟机需要安装的节点主机位置,资源池没有定义每个主机默认为一个资源池,名字可以自行修改
  5.         resource_pool = self.get_obj([vim.resourcepool], kwargs.get("resource_pool"))
  6.         #定义需要安装的存储名字
  7.         if kwargs.get('datastore_name',none):
  8.             datastore = self.get_obj([vim.datastore], kwargs.get('datastore_name'))
  9.         else:
  10.             datastore = self.get_obj([vim.datastore], kwargs.get("template").datastore[0].info.name)

  11.         relospec = vim.vm.relocatespec()
  12.         relospec.datastore = datastore
  13.         relospec.pool = resource_pool

  14.         clonespec = vim.vm.clonespec()
  15.         clonespec.location = relospec
  16.         #定义克隆完成后是否需要开机
  17.         clonespec.poweron = kwargs.get("poweron")

  18.         print("cloning vm...")
  19.         #开始克隆,vm_name是新主机名字
  20.         task = template.clone(folder=self._get_folder(self.content), name=kwargs.get("vm_name"), spec=clonespec)
  21.         #使克隆任务从异步变成同步,后面会把代码列出
  22.         return self.wait_for_task(task)
       上面就是克隆的具体代码,从模板创建虚拟机的过程就是在克隆的基础上加上配置的修改,如何修改配置会在接下来更新,感谢观看。

        参考文档    里面有很多栗子。
       


阅读(3322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图