python pyvmomi操作VMware(七):根据模板克隆虚拟机(类型是Windows)指定IP、主机名等信息

背景:当客户克隆的虚拟机是Windows类型,并且还要指定IP、主机名等信息。
问题:根据之前的克隆方法、发现模板是Windows类型时,怎么指定主机名都失败,报错信息:指定的参数不正确: spec.identity
过程:经过研究官方的文档,发现一个比较有趣的事情,就是克隆指定一些配置信息,windows和Linux是区分开的,当模板是Windows时,identity采用Sysprep的配置;模板是Linux等系统时,identity采用LinuxPrep的配置。
在这里插入图片描述
Sysprep的配置信息如下:在这里插入图片描述
这里对以前的克隆IP配置信息函数进行了修改:
根据模板的系统类型进行选择性克隆

    def get_customspec(self, template, vm_ip=None, vm_subnetmask=None, vm_gateway=None, vm_dns=None,
                       vm_domain=None, vm_hostname=None):
        """
        IP等信息的配置函数
        :param template: 模板对象
        :param vm_ip:
        :param vm_subnetmask:
        :param vm_gateway:
        :param vm_dns:
        :param vm_domain:
        :param vm_hostname:
        :return:
        """
        adaptermaps = []
        guest_map = vim.vm.customization.AdapterMapping()
        guest_map.adapter = vim.vm.customization.IPSettings()
        guest_map.adapter.ip = vim.vm.customization.FixedIp()
        guest_map.adapter.ip.ipAddress = vm_ip
        guest_map.adapter.subnetMask = vm_subnetmask
        guest_map.adapter.gateway = vm_gateway
        if vm_domain:
            guest_map.adapter.dnsDomain = vm_domain
        adaptermaps.append(guest_map)

        # DNS settings
        globalip = vim.vm.customization.GlobalIPSettings()
        if vm_dns
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值