VMWare PowerCLI — это утилита командной строки, распространяемая в виде модуля PowerShell, которая обладает множеством функций по управлению vSphere и позволяет автоматизировать выполнение различных операций по управлению средой виртуализации. К таким операциям относятся: работа с хранилищем, сетью, виртуальными машинами, изменение параметров гостевых ОС, среды виртуализации в целом и так далее.
Официальный сайт: https://developer.vmware.com/powercli/
PowerCLI может функционировать под управлением ОС Windows, а также в macOS и различных дистрибутивах Linux: Alpine, Debian, RHEL, Ubuntu. На всех платформах для корректной работы требуется установка PowerShell 7.
Установка PowerCLI в ОС Windows
1. Запустите PowerShell от имени администратора (или с правами суперпользователя) и выполните команду по установке PowerCLI:
Install-Module -Name VMware.PowerCLI
В случае, если на Вашем ПК уже установлен PowerCLI, можно выполнить обновление до последней версии. Это действие выполняется командой:
Update-Module -Name VMware.PowerCLI
После установки имеет смысл проверить перечень установленных модулей с помощью команды:
Get-Module -ListAvailable VMware* | Select Name,version
Результат:
Установка PowerCLI в ОС Linux
Для работы с PowerCLI в Linux сначала необходимо установить PowerShell 7.
После того, как оболочка PowerShell установлена, запустим её:
pwsh
Затем, выполним команду по установке PowerCLI:
Install-Module -Name VMware.PowerCLI
И проверим состав установленных модулей:
На этом установка PowerCLI завершена.
Подключение к гипервизору
Рассмотрим приемы работы PowerCLI на примере гипервизора VMWare vSphere 8.
Импортируем модуль PowerCLI в текущую сессию:
Import-Module VMware.PowerCLI
Затем укажем, что не хотим участвовать в программе Customer Experience Improvement Program:
Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false
Теперь установим подключение к хосту с гипервизором:
Connect-VIServer -Server <server_fqdn> -Protocol https
При подключении система сразу же запросит имя пользователя и пароль для входа. А после успешной аутентификации — проинформирует о параметрах хоста, к которому установлено соединение.
Примеры команд
Получить список всех имеющихся команд (более 2 тысяч):
Get-Command –Module *vmware*
Получить информацию о состоянии хоста VMWare vSphere:
Get-VMHost
Получить список всех имеющихся виртуальных машин:
Get-VM | Sort | Select Name, Id, PowerState, NumCpu, MemoryMB | Format-Table *
Получить информацию о свойствах заданной виртуальной машины:
Get-VM -Name "vmname" | Format-List
Запуск и остановка виртуальной машины:
# Запуск виртуальной машины
Start-VM ‑VM "vmname"
# Остановка виртуальной машины
Stop-VM ‑VM "vmname"
Операции по созданию виртуальных машин:
# Создание виртуальной машины с указанием ноды ESXi
New-VM -Name "vmname" -VMHost "hostname"
# Пример создания новой директории
New-Folder -Name "folder name"
# Пример создания новой директории в корневом каталоге (root)
$folder = Get-Folder -NoRecursion | New-Folder -Name "folder name"
# Пример создания нового дата-центра в заданной директории
New-Datacenter -Location $folder -Name "datacenter name"
Операции по перемещению виртуальных машин:
# Миграция виртуальной машины на другую ноду
Move-VM -VM "vmname" -Destination "hostname"
# Миграция виртуальной машины на другой datastore
Move-VM -VM "vmname" -Datastore "datastore name"
# Выполнить перенос всех виртуальных машин на другую ноду
Get-VMHost "hostname" | Get-VM | Move-VM -Destination (Get-VMHost "hostname")
Создание снапшотов:
# Создать новый снапшот виртуальной машины
New-Snapshot -VM "vmname" -Name "snapshot name"
# Создать новый снапшот запущенной ВМ и сохранить состояние ее памяти
New-Snapshot -VM "vmname" -Name "snapshot name" -Description "description" -Memory $true
# Получить список всех имеющихся снапшотов для виртуальной машины
Get-Snapshot -VM "vmname"
Создание шаблонов
# Сконвертировать виртуальную машину в template
Get-VM -Name "vmname" | Set-VM -ToTemplate -Confirm:$false
# Получить список всех имеющихся шаблонов для датацентра
Get-Template -Location "datacenter"
Примеры скриптов
С примерами скриптов для PowerCLI можно ознакомиться по ссылке: https://github.com/vmware/PowerCLI-Example-Scripts