- tocdepth
2
Запрос объектов
После подключения к организации вы получаете доступ к ее объектам (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.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.
Get-CIVM -Name CentOS8 | Get-CIView
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
.
(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,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.
Get-CIVM -VApp My-vApp -Status "PoweredOn", "Suspended" | Select Name, VApp, Status, CpuCount, MemoryGB
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.
Запросите список сетевых адаптеров 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:9a}
См.также
Запрос сетей организации с условием
Запросите список сетей организации, для которых должны одновременно выполняться следующие условия:
сеть размещается в виртуальном ЦОД с названием 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
Операторы сравнения
Оператор сравнения
Значение
Пример
-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)
См.также
Запрос сетей 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 Directorhtmls://vcd01-01.cloud.ru/tenant/<tenant_name>
;vdc_name
— название виртуального ЦОД.
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.
для Dev & Test