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

После подключения к организации вы получаете доступ к ее объектам (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://vcd.sbercloud.ru/api/vApp/vm-27bee2...
Id              : urn:vcloud:vm:27bee2...
Name            : CentOS8
Uid             : /CIServer=admin:sbercloud_tenant@vcd.sbercloud.ru:443/CIVM=urn:vcloud:vm:27bee2.../

См.также

Запрос представления 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:27bee2...
OperationKey            :
Client                  : VMware.VimAutomation.Cloud.Views.CloudClient
Href                    : https://vcd.sbercloud.ru/api/vApp/vm-27bee2...
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:9a}

См.также

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

Операторы сравнения

Оператор сравнения

Значение

Пример

-eq

Равно

1 -eq 1

-ne

Не равно

1 -ne 2

-lt

Меньше

1 -lt 2

-le

Меньше или равно

1 -le 2

-gt

Больше

2 -gt 1

-ge

Больше или равно

2 -ge 1

-like

Совпадает

«VM-1» -like » *-?»

-notlike

Не совпадает

«VM-1» -notlike «VM?»

-contains

Содержит

1,2,3 -contains 1

-notcontains

Не содержит

1,2,3 -notcontains 4

Логические операторы

Логический оператор

Значение

Пример

-and

И

(1 -eq 1) -and (2 -eq 2)

-or

ИЛИ

(1 -eq 1) -or (1 -eq 2)

-not

НЕ

-not (1 -eq 2)

!

НЕ

! (1 -eq 2)

См.также

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-адресе для входа в консоль управления Enterprise htmls://vcd.sbercloud.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

...

См.также

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