nav-img
Облако VMware

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

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

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.