Напомним, что PowerCLI – это расширение для Windows PowerShell, которое позволяет использовать более 600 командлетов для работы с облачной инфраструктурой. Последняя версия пакета доступна на официальном сайте VMware.
За счет гибких функциональных возможностей надстройки управлять виртуальными машинами стало еще проще. Единственное условие – необходимо разобраться, как это работает на практике.
Get-VM
Get-VM представляет собой классический подход, позволяющий извлекать список виртуальных машин на стороне vCenter. Кроме того, используя Get-VM со стандартным командлетом PowerShell Select-Object, можно запросить интересующие характеристики, например имя виртуальной машины, количество процессоров, объем оперативной памяти и прочую информацию. А затем с помощью Export-CSV экспортировать данные в файл формата CSV для дальнейшей работы с полученной информацией.
Помимо работы с объектами ВМ, Get-VM используется для поиска снимков в виртуальной среде, о которых, вероятнее всего, могли забыть. В примере, представленном ниже, запрашивается список снимков ВМ, а полученный результат выводится в текстовый файл snapshots.txt.
Move-VM
Если перед администратором стоит задача переноса виртуальных машин с одного хоста на другой средствами командной строки, используют командлет Move-VM. В примере ниже производится выборка ВМ, размещенных на узле esxi01, а с помощью Move-VM – перенос виртуальных машин на хост esxi02.
Если же необходимо выполнить «живую миграцию», используют следующую комбинацию:
New-VM
Когда требуется создать одну виртуальную машину, используют командлет New-VM. Обратите внимание, что таким способом создается пустая ВМ, на которую позже устанавливают ОС и соответствующие приложения.
Но существуют и альтернативные варианты развертывания, когда работают с заранее подготовленным шаблоном. В примере ниже путем клонирования виртуальной машины OriginalVM создается ВМ NewVM8 и размещается на узле esxi01.
Если создавать виртуальные машины по отдельности нет ни желания, ни времени, используйте файл ответов в формате CSV. В нем содержатся строки, описывающие параметры виртуальных машин. Такой файл необходимо определить заранее.
Содержимое файла CSV
Invoke-VMS
Командлет Invoke-VMS обеспечивает удаленное выполнение команд и скриптов в гостевой Windows, Linux ОС, запущенной на виртуальной машине. Данная функция помогает автоматизировать задачи на одной или нескольких ВМ.
Обратите внимание, что в приведенном примере запускается скрипт типа Bat и используется переменная среды со следующим синтаксисом: %<environment variable>%, например,% programfiles%. При этом внешние кавычки ($ script = '...') определяют строковую переменную в PowerShell, а внутренние проставляются тогда, когда в значении переменной встречаются пробелы.
Get-VMHost
Командлет Get-VMHost помогает узнать, на каком узле или в каком дата-центре запущена виртуальная машина. В примере ниже запрашивается информация о ВМ с именем MyVM.
Если необходимо получить информацию о ЦОД, прибегают к помощи командлета Get-Datacenter для передачи объекта в параметр Location. Таким образом, получаем следующую строку:
Get-VMHost -Location (Get-Datacenter -Name VeeamNewVsphereDatacentre) -VM (Get-VM -Name "Veeam1")