Работаем с VMWare PowerCLI: установка и использование

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

Совет!
Если на Вашем ПК еще не установлен PowerShell 7, загрузить установщик можно по ссылке: https://learn.microsoft.com/ru-ru/powershell/scripting/install/installing-powershell-on-windows

После установки имеет смысл проверить перечень установленных модулей с помощью команды:

Get-Module -ListAvailable VMware* | Select Name,version

Результат:

Установка PowerCLI в ОС Linux

Для работы с PowerCLI в Linux сначала необходимо установить PowerShell 7.

Совет!
С информацией по установке PowerShell в Linux можно ознакомиться по ссылке: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux

После того, как оболочка 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *