Запрос объектов

После подключения к организации вы получаете доступ к ее объектам (vApp, VM, каталоги, сети, шаблоны и др.). Объекты можно фильтровать, сортировать и искать по ключевым словам. Также можно выводить объекты, подходящие под определенное условие.

Ниже представлены примеры запросов для знакомства с возможностями PowerCLI.

См.также

Все доступные командлеты описаны в документе PowerCLI Reference.

Запрос VM по ее названию

Чтобы найти VM, которая называется CentOS8, запустите следующую команду в консоли PowerShell.

PowerShell
Get-CIVM -Name CentOS8
Output
Name Status GuestOSFullName CpuCount Memory GB
---- ------ --------------- -------- ---------
CentOS8 PoweredOff CentOS 8 ( 64-bit ) 2 2 , 0

Запрос свойств VM

Чтобы отобразились все свойства VM, запросите вывод в виде списка. Добавьте к команде, используемой выше, оператор конвейера | и команду Format-List.

PowerShell
Get-CIVM -Name CentOS8 | Format-List
Output
ExtensionData : VimAutomation . Cloud . Views . Vm
Status : PoweredOff
Deleted : False
GuestOsFullName : CentOS 8 ( 64 - bit )
CpuCount : 2
MemoryMB : 2048
MemoryGB : 2
VMVersion : v14
Org : Org - Name
OrgVdc : VDC - Name
VApp : vApp - Name
Description :
Href : https : // vcd01 - 01. cloud . ru / api / vApp / vm - 27 bee2 ...
Id : urn : vcloud : vm : 27 bee2 ...
Name : CentOS8
Uid : / CIServer = admin : sbercloud_tenant @vcd01 - 01. cloud . ru : 443 / CIVM = urn : vcloud : vm : 27 bee2 .../
См.также

Запрос представления VM

Чтобы узнать больше свойств виртуальной машины, запросите ее облачное представление командой Get-CIView.

PowerShell
Get-CIVM -Name CentOS8 | Get-CIView
Output
NeedsCustomization : False
NestedHypervisorEnabled : False
VdcComputePolicy : VMware . VimAutomation . Cloud . Views . Reference
StorageProfile : VMware . VimAutomation . Cloud . Views . Reference
VmCapabilities : VMware . VimAutomation . Cloud . Views . VmCapabilities
Media :
VAppScopedLocalId : ca54a ...
Environment :
Deployed : False
DateCreated : 17.05.2021 13 : 13 : 12
VAppParent :
Section : {, 102 , VMware . VimAutomation . Cloud . Views . NetworkConnectionSection , ... }
Status : 3
Files :
Name : CentOS8
Tasks :
Description :
Id : urn : vcloud : vm : 27 bee2 ...
OperationKey :
Client : VMware . VimAutomation . Cloud . Views . CloudClient
Href : https : // vcd01 - 01. cloud . ru / api / vApp / vm - 27 bee2 ...
Type : application / vnd . vmware . vcloud . vm + xml
Link : {, , , ... }
AnyAttr :
VCloudExtension :

В списке свойств выше есть параметр StorageProfile, который содержит информацию о политике хранения для виртуальной машины. Чтобы уточнить название политики, возьмите запрос в скобки и добавьте к нему .StorageProfile.

PowerShell
( Get-CIVM -Name CentOS8 | Get-CIView ). StorageProfile
См.также

Команда Get-CIView подходит и для других облачных объектов, например vApp, каталога или виртуального ЦОД. Подробнее о ней — в разделе Get-CIView документации PowerCLI.

Запрос сетей, присвоенных VM

Чтобы получить список сетей, присвоенных VM, запустите следующую команду в консоли PowerShell.

PowerShell
Get-CIVM -Name CentOS8 | Get-OrgNetwork
Output
Name Gateway Org ExternalNetwork NetworkType
---- ------- --- --------------- -----------
Net 192 . 168 . 1 . 1 Cloud_tenant Routed

Cортировка шаблонов vApp

Запросите список шаблонов vApp, добавив следующие требования:

  • отсортировать шаблоны по размеру (параметр «StorageUsedGB»);

  • вывести последние пять значений.

PowerShell
Get-CIVAppTemplate | Sort-Object -Property StorageUsedGB | Select-Object -Last 5
Output
Name Status Owner StorageUsedGB
---- ------ ----- -------------
Fedora-x64 - 29 PoweredOff system 16 , 000
Ubuntu 18 . 04 PoweredOff system 32 , 000
Ubuntu 19 . 04 PoweredOff system 32 , 000
Debian 9 x64 PoweredOff system 32 , 000
ECS-Sync - 3 . 2 . 7 PoweredOff system 200 , 000
См.также

Фильтрация VM

Запросите список VM, добавив следующие фильтры:

  • вывести VM из vApp с названием My-vApp;

  • вывести VM со статусом PoweredOn или Suspended;

  • вывести параметры VM: Name, VApp, Status, CpuCount, MemoryGB.

PowerShell
Get-CIVM -VApp My-vApp -Status "PoweredOn" , "Suspended" | Select Name , VApp , Status , CpuCount , MemoryGB
Output
Name : VM - 1
VApp : My - vApp
Status : PoweredOn
CpuCount : 2
MemoryGB : 1
Name : VM - 2
VApp : My - vApp
Status : Suspended
CpuCount : 2
MemoryGB : 1
Подсказка

Чтобы данные выводились в формате таблицы, добавьте к запросу | Format-Table.

Поиск MAC-адресов VM по ключевому слову

Рассмотрим поиск VM с MAC-адресами, в которых есть строка «00:50:56:01:a4:». Искать таким образом можно по параметрам типа String.

  1. Запросите список сетевых адаптеров VM, поскольку MAC-адрес является параметром сетевого адаптера VM.

  2. Настройте вывод названия VM и MAC-адреса.

  3. Добавьте поиск тех MAC-адресов, в которых есть строка «00:50:56:01:a4:».

PowerShell
Get-CIVM | Get-CINetworkAdapter | Select VM , MACAddress | Select-String -Pattern '00:50:56:01:a4:'
Output
@ { VM = VM - 1 ; MACAddress = 00 : 50 : 56 : 01 : a4 : a5 }
@ { VM = VM - 3 ; MACAddress = 00 : 50 : 56 : 01 : a4 : 9 a }
См.также

Select-String

Запрос сетей организации с условием

Запросите список сетей организации, для которых должны одновременно выполняться следующие условия:

  • сеть размещается в виртуальном ЦОД с названием vdc01;

  • тип сети — не Routed.

Примечание

Если в вашей инфраструктуре используются сети DCG, используйте следующий запрос. Вывод запроса ниже будет неполным.

PowerShell
Get-OrgVdcNetwork | Where-Object { $_ . OrgVdc . Name -eq "vdc01" -and $_ . NetworkType -NotLike "Routed" }
Output
Name OrgVdc DefaultGateway NetworkType
---- ------ -------------- -----------
Net - 1 vdc01 192 . 168 . 100 . 1 Isolated
См.также

Where-Object

Запрос сетей DCG

Чтобы вывести не только обычные сети огранизации, но и сети, которые подключены к DCG, запустите следующий скрипт:

PowerShell
$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 — название виртуального ЦОД.

Output
DNSSuffix :
Gateway : 192 . 168 . 79 . 62
DNS1 : 8 . 8 . 8 . 8
NetName : My-Org-Network
Netmask : 255 . 255 . 255 . 192
DNS2 :
SubnetPrefixLength : 26
DNSSuffix :
Gateway : 192 . 168 . 5 . 1
DNS1 :
NetName : My-DCG-Network
Netmask : 255 . 255 . 255 . 0
DNS2 :
SubnetPrefixLength : 24
...
См.также

Информация о том, как записать данные в файл, есть в разделе Создание отчетов с PowerCLI.

Облако VMware