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.PowerCLIPowerCLI 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 на изолированный компьютер (отключенную среду), вы можете использовать автономный установщик.
Скачать ZIP-файл с модулем PowerCLI https://code.vmware.com/web/tool/vmware-powercli (размер ZIP-архива с текущей версией VMware-PowerCLI 12.4.1 составляет около 80 МБ);
Разархивируйте архив в директорию с модулями PowerShell на компьютере (получить список директорий модулей PoSh можно с помощью
$env:PSModulePath). Обычно
C:\Program Files\WindowsPowerShell\Modulesиспользуется.
Разблокируйте файлы, скачанные из Интернета:
cd “c:\Program Files\WindowsPowerShell\Modules” Get-ChildItem * -Recurse | Unblock-FileОткройте консоль 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 | ftNew-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 и т. д.).




