0

有没有人有使用 Python SDK (v: v2.0.0rc6) 以及将正在运行的 VM 克隆/复制到另一个资源组的经验?

让操作系统磁盘启动。也需要数据盘

managed_disk = self.compute_client.disks.get(resource_group_name=source_rg_name, disk_name=vm.storage_profile.os_disk.name)

制作操作系统磁盘的快照。

self.compute_client.snapshots.create_or_update(
    self.config.resource_group_name,
    'SNAPSHOT-' + virtual_machine,
    {
        'location': managed_disk.location,
        'creation_data': {
            'create_option': 'Copy',
            'source_uri': managed_disk.id
        }
    }
)

创建虚拟机。下面抛出异常。

result = self.compute_client.virtual_machines.create_or_update(
    self.config.cybric_resource_group_name,
    virtual_machine,
    azure.mgmt.compute.models.VirtualMachine(
        location=vm.location,
        os_profile=vm.os_profile,
        hardware_profile=vm.hardware_profile,
        network_profile=azure.mgmt.compute.models.NetworkProfile(
            network_interfaces=[
                azure.mgmt.compute.models.NetworkInterfaceReference(
                    id=nic_obj['id'],
                    primary=True
                ),
            ],
        ),
        storage_profile=azure.mgmt.compute.models.StorageProfile(
        os_disk=azure.mgmt.compute.models.OSDisk(
            caching=azure.mgmt.compute.models.CachingTypes.none,
            create_option=azure.mgmt.compute.models.DiskCreateOptionTypes.attach,
            name=dup_virtual_machine,
            managed_disk=azure.mgmt.compute.models.ManagedDiskParameters(
                id=managed_disk.id
            ),
        ),
        image_reference = azure.mgmt.compute.models.ImageReference(
            publisher=vm.storage_profile.image_reference.publisher,
            offer=vm.storage_profile.image_reference.offer,
            sku=vm.storage_profile.image_reference.sku,
            version=vm.storage_profile.image_reference.version,
        ),
    ),
    ),
)

例外:

无法创建虚拟机:Azure 错误:InvalidParameter 消息:如果 VM 是从平台或用户映像创建的,则无法附加现有的 OS 磁盘。目标:osDisk

4

1 回答 1

1

错误日志的原因是create_option错误的,你应该使用FromImagenot attach您可以在此链接中查看 Azure Python SDK 。

于 2018-03-26T01:45:02.933 回答