Поиск по сайту:

VMware PowerCLI: как установить vSphere и ESXi и управлять ими


VMware vSphere PowerCLI — это набор модулей PowerShell для управления инфраструктурой VMware из командной строки. Вы можете использовать PowerCLI для получения состояния виртуальных машин, хранилищ данных, сетей или пользователей, управления различными настройками, создания новых объектов и использования PowerShell в задачах автоматизации для ESXi, vCenter Server, vSphere, vSAN и других продуктов VMware.

В настоящее время VMware разрабатывает версию PowerCLI только для PowerShell Core (7.0+). Эта версия PowerShell является кроссплатформенной и может использоваться в Windows, Linux или macOS. Для более ранних модулей PowerCLI для Windows PowerShell 5.x выпущены только исправления безопасности. Рекомендуется использовать обновленную версию PowerShell Core.

Как установить модуль VMware PowerCLI в Windows?

Вы можете установить VMware PowerCLI в Windows онлайн или офлайн.

Чтобы установить PowerCLI из онлайн-галереи PowerShell, выполните следующую команду:

Install-Module -Name VMware.PowerCLI

PowerCLI vSphere версии 6.5 или более ранней распространялся в виде установщика MSI.

Если вы хотите установить модуль только для текущего пользователя:

Install-Module VMware.PowerCLI -Scope CurrentUser

По умолчанию последняя версия PowerCLI устанавливается из галереи PowerShell. Если вы хотите установить определенную версию PowerCLI, вы можете отобразить полный список доступных версий и установить нужную:

Find-Module -Name VMware.PowerCLI -AllVersions|select version
Install-Module -Name VMware.PowerCLI -RequiredVersion 12.4.0.17860403

Во время установки вам будет предложено обновить поставщика NuGet. Также подтвердите установку из ненадежного репозитория галереи PowerShell. Вы можете сделать его доверенным, используя

Set_PSRepository

командлет.

Убедитесь, что модули PowerCLI установлены, и отобразите их версии:

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

Чтобы обновить версию модуля PowerCLI, просто запустите команду:

Update-Module -Name VMware.PowerCLI

Если у вас установлен модуль управления пакетами Choco в Windows, вы можете найти модуль PowerCLI в репозитории:

choco search vmware

и установите его:

choco install vmware-powercli-psmodule

Модуль PowerCLI пока недоступен в winget.

Если вы хотите установить PowerCLI на изолированный компьютер (отключенную среду), вы можете использовать автономный установщик.

  1. Скачать ZIP-файл с модулем PowerCLI https://code.vmware.com/web/tool/vmware-powercli (размер ZIP-архива с текущей версией VMware-PowerCLI 12.4.1 составляет около 80 МБ);

  2. Разархивируйте архив в директорию с модулями PowerShell на компьютере (получить список директорий модулей PoSh можно с помощью

    $env:PSModulePath

    ). Обычно

    C:\Program Files\WindowsPowerShell\Modules

    используется.

  3. Разблокируйте файлы, скачанные из Интернета:

    cd “c:\Program Files\WindowsPowerShell\Modules”
    Get-ChildItem * -Recurse | Unblock-File
  4. Откройте консоль PowerShell и убедитесь, что модуль PowerCLI доступен:

    Get-Module -Name VMware.PowerCLI -ListAvailable

Узнайте больше об автономной установке модулей PowerShell.

Чтобы импортировать модуль PowerCLI в текущий сеанс PowerShell ISE или Visual Studio Code, выполните следующую команду:

Import-Module VMware.VimAutomation.Core

Вы можете увидеть это сообщение об ошибке при загрузке модуля:

Import-Module: File C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.4.0.18627054\VMware.VimAutomation.Sdk.psm1 cannot be loaded because running scripts is disabled on this system.

Затем вам необходимо настроить политику выполнения сценариев PowerShell. Чтобы разрешить использование модуля в текущем сеансе:

Set-ExecutionPolicy Unrestricted -Scope Process

Вы можете использовать модуль PowerCLI, установленный на удаленном компьютере. Для этого импортируйте его удаленно с помощью PSRemoting:

$session = New-PSSession -ComputerName mun-svr01

Импортируйте модуль PowerCLI на свой компьютер:

Import-Module -PSsession $session -Name VMware.VimAutomation.Core

Не забудьте закрыть сеанс, когда закончите:

Remove-PSSession $session

Установка модуля PowerCLI в Linux

Вы можете установить и использовать PowerCLI как в Windows, так и в Linux. Сначала установите PowerShell Core на свой хост Linux. Затем выполните следующие команды в консоли, чтобы установить VMware PowerCLI:

pwsh
Install-Module -Name VMware.PowerCLI

Импортируйте модуль в свой сеанс:

Import-Module VMware.PowerCLI

Основные команды PowerCLI для управления VMware vSphere и виртуальными машинами

Получить список командлетов в модулях PowerCLI можно следующим образом (доступно более 2200 команд):

Get-Command -Module *vmware*

Чтобы отключить уведомление Программы улучшения качества программного обеспечения VMware (CEIP):

Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCeip $false

Чтобы подключиться к vCenter Server или хосту ESXi:

Connect-VIServer <vCenter_or_ESXi_FQDN>

Если вы используете самозаверяющий сертификат SSL для своего сервера vCenter, PowerCLI заблокирует соединение:

Connect-VIServer Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permanent exception for this server.
Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority.

Чтобы игнорировать самозаверяющие сертификаты:

Set-PowerCLIConfiguration -Scope AllUsers -InvalidCertificateAction Warn

Чтобы отобразить список виртуальных машин, зарегистрированных на вашем сервере ESXi (или vCenter):

Get-VM

Чтобы показать только выключенные виртуальные машины:

Get-VM | Where {$_.Powerstate -ne “PoweredOn”} | Select Name, VMHost, NumCPU, MemoryMB, Version|Format-Table

Чтобы запустить виртуальную машину:

Start-VM -VM MUNTestVM1

Чтобы правильно перезапустить виртуальную машину (с помощью агента инструментов VMware):

Restart-VMGuest -VM MunTestVM1 -Confirm:$False

Чтобы выключить виртуальную машину:

Shutdown-VMGuest -VM MunTestVM1 -Confirm:$False

Чтобы отобразить список снимков виртуальной машины:

Get-VM -VM MunTestVM1 | Get-Snapshot| Format-List

Чтобы переместить работающую виртуальную машину на другой хост с помощью VMotion, используется команда Move-VM. Например, вы хотите переместить все виртуальные машины с mun-esxi1 на mun-esxi2:

Get-VMHost mun-esxi1|Get-Vm| Move-VM -Destination (Get-VMHost mun-esxi2)

Чтобы создать новую виртуальную машину, используйте командлет New-VM:

New-VM -Name MunTestVM1 -VMHost mun-esxi1 -ResourcePool Production -DiskGB 20 -DiskStorageFormat Thin -Datastore MUN_MSA2000_Prod1

Используйте

Set-VM

командлет для изменения настроек виртуальной машины.

С помощью командлетов PowerCLI вы можете взаимодействовать с гостевой операционной системой ваших виртуальных машин. Для этого на виртуальной машине необходимо установить VMware Tools. Вы можете обновить VMware Tools, как показано ниже:

Get-VMGuest MunTestVM1 | Update-Tools

С помощью Invoke-VMS вы можете запустить скрипт или программу в гостевой ОС Windows:

$script = '"%programfiles%\Common Files\Microsoft Shared\MSInfo\msinfo32.exe" /report "%tmp%\inforeport"'
Invoke-VMScript -ScriptText $script -VM MunTestVM1 -HostCredential $hostCred -GuestCredential $VMCred -ScriptType Bat

Чтобы скопировать файл на все виртуальные машины, выполните следующую команду:

Get-VM | Copy-VMGuestFile -Source C:\PS\get-size.ps1 -Destination C:\PS\ - LocalToGuest -GuestUser administrator -GuestPassword P@ssdr0w2

Модуль содержит командлеты для управления кластерами, центрами обработки данных, хранилищами данных и хостами ESXi:

Get-VMHost
Get-Datacenter
Get-Cluster
Get-Datastore
Get-VirtualPortGroup

Чтобы отобразить список хостов ESXi в кластере:

Get-Cluster munprod1 | Get-VMHost | sort name

Переведите конкретный хост ESXi в режим обслуживания:

Set-VMhost -VMHost mun-esxi1 -State Maintenance

Чтобы подключить iSCSI LUN к хосту ESXi и создать на нем хранилище данных VMFS:

Get-ScsiLun -VmHost mun-esxi1 | ft
New-Datastore -Name 'mun_iscsi_datastore' -VMHost mun-esxi1 -Path naa.6000xxxxxxxxxxxxxxxx -Vmfs

Совет. PowerCLI работает в режиме только для чтения с бесплатным гипервизором VMware vSphere. Это означает, что вы можете использовать команды для просмотра настроек хоста и виртуальной машины, но не можете их изменить.

Примеры сценариев PowerCLI

Есть несколько примеров использования PowerCLI для получения информации об элементах инфраструктуры VMware и автоматизации некоторых действий на сайте. Вы можете использовать примеры из следующих статей для написания собственных сценариев PowerCLI:

  • Проверка свободного дискового пространства в хранилищах данных VMFS

  • Сопоставление виртуальных дисков VMware (файлов VMDK) и томов дисков Windows

  • Как найти виртуальные машины VMware по IP или MAC-адресу?

  • Настройка SNMP на хостах VMware ESXi

  • Как принудительно перезапустить зависшую виртуальную машину VMware?

  • Внедрение драйверов в установочный образ ESXi

  • Сигнал состояния необходимости консолидации виртуальных машин VMware

  • Обновление версии оборудования виртуальной машины

vSphere PowerCLI — это мощный инструмент для управления и автоматизации вашей инфраструктуры VMware. PowerCLI включает более 2000 командлетов для управления облачной и локальной инфраструктурой VMware (vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon, NSX-T, VMware Cloud Services, VMware Cloud on AWS и т. д.).

Статьи по данной тематике