• Как с помощью PowerCli сделать частиный бэкап VM?

    @azarij
    В меру опытный никто
    похоже, когда они писали new-vm командлет, они просто поленились дополнительные опции для клонирования туда запихнуть... или спроса на них не было большого. однако в АПИ они есть.

    код ниже работает для вм, у которой два диска: один системный, один левый. диск, который нужно убрать указывается буквально.
    ТЗ: сделать клон вм так, чтобы перед клонированием был убран несистемный диск. все остальные параметры оригинальной вм должны быть скопированы как есть.

    $connection = Connect-VIServer -Server 192.168.0.1 -user "domain\user" -Password "P@ssw0rd" # подключаемся к вицентру
    
    $vm = get-vm "original-vm" # засовываем оригинальную ВМ в переменную
    
    $folder = get-folder "folder_name_here" # выставляем в какую папку будет положена копия
    
    $spec = New-Object VMware.Vim.VirtualMachineCloneSpec # создаем объект со спецификацией клона
    
    $spec.Config = New-Object VMware.Vim.VirtualMachineConfigSpec # создаем секцию конфигурации в предыдущем объекте
    
    $excludedisk = New-Object VMware.Vim.VirtualDeviceConfigSpec # создаем объект, указывающий на конфигурацию устройства?
    
    $excludedisk.Operation = "remove" # указываем, что мы хотим сделать с оригинальной конфигурацией
    
    $excludedisk.Device = $vm.ExtensionData.Config.Hardware.device | where diskobjectid -EQ "id diska, kotoryj hotim ubrat"
    
    $spec.Config.DeviceChange += $excludedisk # запихиваем команду на удаление диска в спецификацию для клонирования.
    
    $spec.Location = New-Object VMware.Vim.VirtualMachineRelocateSpec # наверно, создаем объект для указания где хранить клон...
    
    $spec.PowerOn = $false # наверно, указываем, что после клонирования клон запускать не надо
    
    $spec.Template = $false #  наверно, указываем, что никакие шаблоны при клонировании не используются
    
    $vm.ExtensionData.CloneVM($folder.ExtensionData.MoRef,"imia_novoj_vm",$spec) # запускаем собственно клонирование с указанной конфигурацией клона


    я настоятельно рекомендую проверить это все на тестовой вм перед тем как лезть с этим кодом в production.

    идея честно сперта отсюда: https://communities.vmware.com/thread/409695?start...
    Ответ написан
    2 комментария