Запрос объектов
После подключения к организации вы получаете доступ к ее объектам (vApp, VM, каталоги, сети, шаблоны и др.). Объекты можно фильтровать, сортировать и искать по ключевым словам. Также можно выводить объекты, подходящие под определенное условие.
Ниже представлены примеры запросов для знакомства с возможностями PowerCLI.
Все доступные командлеты описаны в документе PowerCLI Reference.
Запрос VM по ее названию
Чтобы найти VM, которая называется CentOS8, запустите следующую команду в консоли PowerShell.
Get-CIVM -Name CentOS8
Name Status GuestOSFullName CpuCount Memory GB---- ------ --------------- -------- ---------CentOS8 PoweredOff CentOS 8 ( 64-bit ) 2 2 , 0
Запрос свойств VM
Чтобы отобразились все свойства VM, запросите вывод в виде списка. Добавьте к команде, используемой выше, оператор конвейера | и команду Format-List.
Get-CIVM -Name CentOS8 | Format-List
ExtensionData : VimAutomation . Cloud . Views . VmStatus : PoweredOffDeleted : FalseGuestOsFullName : CentOS 8 ( 64 - bit )CpuCount : 2MemoryMB : 2048MemoryGB : 2VMVersion : v14Org : Org - NameOrgVdc : VDC - NameVApp : vApp - NameDescription :Href : https : // vcd01 - 01. cloud . ru / api / vApp / vm - 27 bee2 ...Id : urn : vcloud : vm : 27 bee2 ...Name : CentOS8Uid : / CIServer = admin : sbercloud_tenant @vcd01 - 01. cloud . ru : 443 / CIVM = urn : vcloud : vm : 27 bee2 .../
Запрос представления VM
Чтобы узнать больше свойств виртуальной машины, запросите ее облачное представление командой Get-CIView.
Get-CIVM -Name CentOS8 | Get-CIView
NeedsCustomization : FalseNestedHypervisorEnabled : FalseVdcComputePolicy : VMware . VimAutomation . Cloud . Views . ReferenceStorageProfile : VMware . VimAutomation . Cloud . Views . ReferenceVmCapabilities : VMware . VimAutomation . Cloud . Views . VmCapabilitiesMedia :VAppScopedLocalId : ca54a ...Environment :Deployed : FalseDateCreated : 17.05.2021 13 : 13 : 12VAppParent :Section : {, 102 , VMware . VimAutomation . Cloud . Views . NetworkConnectionSection , ... }Status : 3Files :Name : CentOS8Tasks :Description :Id : urn : vcloud : vm : 27 bee2 ...OperationKey :Client : VMware . VimAutomation . Cloud . Views . CloudClientHref : https : // vcd01 - 01. cloud . ru / api / vApp / vm - 27 bee2 ...Type : application / vnd . vmware . vcloud . vm + xmlLink : {, , , ... }AnyAttr :VCloudExtension :
В списке свойств выше есть параметр StorageProfile, который содержит информацию о политике хранения для виртуальной машины. Чтобы уточнить название политики, возьмите запрос в скобки и добавьте к нему .StorageProfile.
( Get-CIVM -Name CentOS8 | Get-CIView ). StorageProfile
Команда Get-CIView подходит и для других облачных объектов, например vApp, каталога или виртуального ЦОД. Подробнее о ней — в разделе Get-CIView документации PowerCLI.
Запрос сетей, присвоенных VM
Чтобы получить список сетей, присвоенных VM, запустите следующую команду в консоли PowerShell.
Get-CIVM -Name CentOS8 | Get-OrgNetwork
Name Gateway Org ExternalNetwork NetworkType---- ------- --- --------------- -----------Net 192 . 168 . 1 . 1 Cloud_tenant Routed
Cортировка шаблонов vApp
Запросите список шаблонов vApp, добавив следующие требования:
отсортировать шаблоны по размеру (параметр «StorageUsedGB»);
вывести последние пять значений.
Get-CIVAppTemplate | Sort-Object -Property StorageUsedGB | Select-Object -Last 5
Name Status Owner StorageUsedGB---- ------ ----- -------------Fedora-x64 - 29 PoweredOff system 16 , 000Ubuntu 18 . 04 PoweredOff system 32 , 000Ubuntu 19 . 04 PoweredOff system 32 , 000Debian 9 x64 PoweredOff system 32 , 000ECS-Sync - 3 . 2 . 7 PoweredOff system 200 , 000
Фильтрация VM
Запросите список VM, добавив следующие фильтры:
вывести VM из vApp с названием My-vApp;
вывести VM со статусом PoweredOn или Suspended;
вывести параметры VM: Name, VApp, Status, CpuCount, MemoryGB.
Get-CIVM -VApp My-vApp -Status "PoweredOn" , "Suspended" | Select Name , VApp , Status , CpuCount , MemoryGB
Name : VM - 1VApp : My - vAppStatus : PoweredOnCpuCount : 2MemoryGB : 1Name : VM - 2VApp : My - vAppStatus : SuspendedCpuCount : 2MemoryGB : 1
Чтобы данные выводились в формате таблицы, добавьте к запросу | Format-Table.
Поиск MAC-адресов VM по ключевому слову
Рассмотрим поиск VM с MAC-адресами, в которых есть строка «00:50:56:01:a4:». Искать таким образом можно по параметрам типа String.
Запросите список сетевых адаптеров VM, поскольку MAC-адрес является параметром сетевого адаптера VM.
Настройте вывод названия VM и MAC-адреса.
Добавьте поиск тех MAC-адресов, в которых есть строка «00:50:56:01:a4:».
Get-CIVM | Get-CINetworkAdapter | Select VM , MACAddress | Select-String -Pattern '00:50:56:01:a4:'
@ { VM = VM - 1 ; MACAddress = 00 : 50 : 56 : 01 : a4 : a5 }@ { VM = VM - 3 ; MACAddress = 00 : 50 : 56 : 01 : a4 : 9 a }
Запрос сетей организации с условием
Запросите список сетей организации, для которых должны одновременно выполняться следующие условия:
сеть размещается в виртуальном ЦОД с названием vdc01;
тип сети — не Routed.
Если в вашей инфраструктуре используются сети DCG, используйте следующий запрос. Вывод запроса ниже будет неполным.
Get-OrgVdcNetwork | Where-Object { $_ . OrgVdc . Name -eq "vdc01" -and $_ . NetworkType -NotLike "Routed" }
Name OrgVdc DefaultGateway NetworkType---- ------ -------------- -----------Net - 1 vdc01 192 . 168 . 100 . 1 Isolated
Запрос сетей DCG
Чтобы вывести не только обычные сети огранизации, но и сети, которые подключены к DCG, запустите следующий скрипт:
$OrgVDC = Get-Org -Name tenant_name | Get-OrgVDC -Name vdc_name$networks = (( $OrgVDC | Get-CIView ). AvailableNetworks ). network$networks_list =foreach ( $network in $networks ) {New-Object -TypeName PSObject -Property @{'NetName' = $network . name'Gateway' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . Gateway'SubnetPrefixLength' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . SubnetPrefixLength'Netmask' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . Netmask'DNS1' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . DNS1'DNS2' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . DNS2'DNSSuffix' = ( Get-CIView -id $network . Href ). Configuration . ipScopes . IpScope . DNSSuffix}}$networks_list
В скрипте укажите свои данные:
tenant_name — название тенанта, которое можно посмотреть в URL-адресе для входа в VMware Cloud Director htmls://vcd01-01.cloud.ru/tenant/<tenant_name>;
vdc_name — название виртуального ЦОД.
DNSSuffix :Gateway : 192 . 168 . 79 . 62DNS1 : 8 . 8 . 8 . 8NetName : My-Org-NetworkNetmask : 255 . 255 . 255 . 192DNS2 :SubnetPrefixLength : 26DNSSuffix :Gateway : 192 . 168 . 5 . 1DNS1 :NetName : My-DCG-NetworkNetmask : 255 . 255 . 255 . 0DNS2 :SubnetPrefixLength : 24...
Информация о том, как записать данные в файл, есть в разделе Создание отчетов с PowerCLI.
- Запрос VM по ее названию
- Запрос свойств VM
- Запрос представления VM
- Запрос сетей, присвоенных VM
- Cортировка шаблонов vApp
- Фильтрация VM
- Поиск MAC-адресов VM по ключевому слову
- Запрос сетей организации с условием
- Запрос сетей DCG