python-获取EXSI宿主机上虚拟机资源信息

python-获取EXSI宿主机上虚拟机资源信息

1. python-获取EXSI宿主机上虚拟机资源信息

  • 安装包准备

    # 所需安装包版本
    python==3.8.4
    pyVim==0.0.21 
    pyvmomi==6.7.1
    
    
    # 安装命令:
    pip install pyVim==0.0.21  pyvmomi==6.7.1
  • 编写获取

    #!/usr/bin/python3
    #coding:utf-8
    
    """
    获取所有的vcenter相关信息
    包括exsi的硬件资源信息和vmware客户端的硬件分配信息
    """
    from pyVmomi import vim
    from pyVim.connect import SmartConnect, Disconnect, SmartConnectNoSSL
    import atexit
    import argparse
    
    
    def get_args():
        parser = argparse.ArgumentParser(
            description='Arguments for talking to vCenter')
    
        parser.add_argument('-s', '--host',
                            required=True,
                            action='store',
                            help='vSpehre service to connect to')
    
        parser.add_argument('-o', '--port',
                            type=int,
                            default=443,
                            action='store',
                            help='Port to connect on')
    
        parser.add_argument('-u', '--user',
                            required=True,
                            action='store',
                            help='User name to use')
    
        parser.add_argument('-p', '--password',
                            required=True,
                            action='store',
                            help='Password to use')
    
        args = parser.parse_args()
        return args
    
    
    def get_obj(content, vimtype, name=None):
        '''
        列表返回,name 可以指定匹配的对象
        '''
        container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True)
        obj = [ view for view in container.view]
        return obj
    
    
    def main():
        esxi_host = {}
        args = get_args()
        # connect this thing
        si = SmartConnectNoSSL(
                host=args.host,
                user=args.user,
                pwd=args.password,
                port=args.port)
        # disconnect this thing
        atexit.register(Disconnect, si)
        content = si.RetrieveContent()
        esxi_obj = get_obj(content, [vim.HostSystem])
        for esxi in esxi_obj:
            esxi_host[esxi.name] = {'esxi_info':{},'datastore':{}, 'network': {}, 'vm': {}}
    
            esxi_host[esxi.name]['esxi_info']['厂商'] = esxi.summary.hardware.vendor
            esxi_host[esxi.name]['esxi_info']['型号'] = esxi.summary.hardware.model
            for i in esxi.summary.har
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟机从 ESXi 5.5 迁移到 ESXi 7.0 有以下几种方法: 1. 使用 vSphere vMotion 迁移虚拟机:如果您的环境支持 vSphere vMotion,则可以使用它来在线迁移虚拟机。在 vSphere vMotion 中,虚拟机的运行状态会从一个 ESXi 主机转移到另一个 ESXi 主机,而不会中断虚拟机服务。这个过程需要将虚拟机从旧版本的 vSphere 中导入到新版本的 vSphere 中。 2. 使用 vSphere Storage vMotion 迁移虚拟机:如果您的环境支持 vSphere Storage vMotion,则可以使用它来在线迁移虚拟机。在 vSphere Storage vMotion 中,虚拟机的磁盘和配置文件会从一个存储位置转移到另一个存储位置,而不会中断虚拟机服务。 3. 使用 VMware vCenter Converter 迁移虚拟机:如果您的环境不支持 vSphere vMotion 或 vSphere Storage vMotion,则可以使用 VMware vCenter Converter 来迁移虚拟机。VMware vCenter Converter 可以将虚拟机从一个 ESXi 主机迁移到另一个 ESXi 主机,或者将虚拟机从一个 VMware 产品转移到另一个 VMware 产品。 4. 手动复制虚拟机文件:如果您的环境不支持 vSphere vMotion、vSphere Storage vMotion 或 VMware vCenter Converter,则可以手动复制虚拟机文件。这个过程需要停止虚拟机服务,将虚拟机的磁盘和配置文件复制到新的 ESXi 主机,然后重新启动虚拟机。这个过程需要谨慎操作,以确保不会丢失任何数据或配置信息。 不管您选择哪种方法,都需要在迁移之前备份虚拟机,以防止数据丢失。另外,不同版本的 ESXi 可能会有不同的硬件和软件要求,因此在迁移之前请确保您的硬件和软件都符合要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值