5 быстрых способов получить виртуальные машины vSphere с помощью шорткодов

Привет, уважаемые любители технологий! Вы устали просматривать длинные списки виртуальных машин (ВМ) в вашей среде vSphere? Ну, не волнуйтесь больше! В этой статье мы рассмотрим несколько изящных методов быстрого получения виртуальных машин vSphere с помощью шорткодов. Итак, возьмите свой любимый напиток и приступим!

Метод 1: Магия PowerCLI
Если вы поклонник PowerShell и любите работать с модулем PowerCLI VMware, этот метод для вас. С помощью нескольких строк кода вы можете извлечь виртуальные машины с помощью шорткодов. Просто откройте свою надежную консоль PowerShell и выполните следующий скрипт:

Connect-VIServer -Server <vCenter Server> -User <Username> -Password <Password>
Get-VM -Name <Shortcode> | Select-Object Name, PowerState, MemoryGB, NumCpu

Замените <vCenter Server>, <Username>, <Password>и <Shortcode>фактическими значениями. Этот сценарий подключается к вашему серверу vCenter, получает виртуальную машину с указанным коротким кодом и отображает ее имя, состояние питания, память и количество процессоров.

Метод 2: vSphere SDK для Python
Любители Python, этот метод для вас! VMware предоставляет SDK для Python с метким названием pyVmomi, который позволяет программно взаимодействовать с vSphere. Вот фрагмент, демонстрирующий, как получить виртуальные машины с помощью шорткодов:

from pyVmomi import vim
from pyVim.connect import SmartConnectNoSSL
vcenter_ip = '<vCenter Server IP>'
username = '<Username>'
password = '<Password>'
shortcode = '<Shortcode>'
si = SmartConnectNoSSL(host=vcenter_ip, user=username, pwd=password)
content = si.RetrieveContent()
vm_view = content.viewManager.CreateContainerView(
    content.rootFolder, [vim.VirtualMachine], True
)
vm_list = [vm for vm in vm_view.view]
desired_vm = next((vm for vm in vm_list if vm.name == shortcode), None)
if desired_vm:
    print(f"Name: {desired_vm.name}")
    print(f"Power State: {desired_vm.runtime.powerState}")
    print(f"Memory: {desired_vm.summary.config.memorySizeMB} MB")
    print(f"CPU Count: {desired_vm.config.hardware.numCPU}")

Не забудьте заменить <vCenter Server IP>, <Username>, <Password>и <Shortcode>фактическими значениями. Этот код подключается к вашему серверу vCenter, получает виртуальную машину с указанным коротким кодом и отображает ее имя, состояние питания, память и количество процессоров.

Метод 3: API веб-служб vSphere
Если вы предпочитаете работать с API, вы можете использовать API веб-служб vSphere для получения виртуальных машин с помощью коротких кодов. Вот фрагмент кода с использованием популярной библиотеки запросов Python:

import requests
vcenter_url = 'https://<vCenter Server IP>/rest'
username = '<Username>'
password = '<Password>'
shortcode = '<Shortcode>'
auth = (username, password)
headers = {'Accept': 'application/json'}
url = f"{vcenter_url}/vcenter/vm"
response = requests.get(url, headers=headers, auth=auth, verify=False)
vm_list = response.json()["value"]
desired_vm = next((vm for vm in vm_list if vm['name'] == shortcode), None)
if desired_vm:
    print(f"Name: {desired_vm['name']}")
    print(f"Power State: {desired_vm['power_state']}")
    print(f"Memory: {desired_vm['memory_size_MiB']} MB")
    print(f"CPU Count: {desired_vm['cpu_count']}")

Замените <vCenter Server IP>, <Username>, <Password>и <Shortcode>фактическими значениями. Этот код подключается к вашему серверу vCenter через REST API, получает виртуальную машину с указанным коротким кодом и отображает ее имя, состояние питания, память и количество процессоров.

Метод 4: поиск клиента vSphere
Если вы используете клиент vSphere, вы можете использовать его встроенную функцию поиска, чтобы быстро находить виртуальные машины с помощью коротких кодов. Просто откройте клиент vSphere, перейдите к нужному уровню инвентаризации (центр обработки данных, кластер или папку) и введите короткий код в поле поиска. Клиент отобразит соответствующие виртуальные машины в результатах поиска.

Метод 5: однострочный код PowerCLI
Для тех, кто любит лаконичные команды, вот однострочный PowerCLI для получения виртуальных машин с помощью коротких кодов:

Get-VM | Where-Object {$_.Name -like "*<Shortcode>*"} | Select-Object Name, PowerState, MemoryGB, NumCpu