Запрос объектов
После подключения к организации вы получаете доступ к ее объектам (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-27bee2...Id : urn:vcloud:vm:27bee2...Name : CentOS8Uid : /CIServer=admin:sbercloud_tenant@vcd01-01.cloud.ru:443/CIVM=urn:vcloud:vm:27bee2.../
Запрос представления 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:27bee2...OperationKey :Client : VMware.VimAutomation.Cloud.Views.CloudClientHref : https://vcd01-01.cloud.ru/api/vApp/vm-27bee2...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: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
Запрос сетей 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