Вот статья в блоге, в которой представлены различные методы получения всех виртуальных машин vSphere с использованием разговорного языка и примеры кода.
Вы новичок в vSphere и хотите узнать, как получить все виртуальные машины (ВМ) в вашей среде vSphere? Не смотрите дальше! В этом руководстве мы покажем вам пять простых способов получить все виртуальные машины vSphere с использованием разных языков программирования и инструментов. Независимо от того, новичок вы или опытный пользователь, эти методы помогут вам автоматизировать процесс и сэкономить драгоценное время. Итак, приступим!
Метод 1. Использование vSphere API с Python
Пример кода:
from pyVim.connect import SmartConnect
from pyVmomi import vim
def get_all_vms():
service_instance = SmartConnect(
host="your_vcenter_ip",
user="your_username",
pwd="your_password",
port=443
)
content = service_instance.RetrieveContent()
container = content.rootFolder
view_type = [vim.VirtualMachine]
recursive = True
vm_view = content.viewManager.CreateContainerView(container, view_type, recursive)
vms = vm_view.view
return vms
# Usage
all_vms = get_all_vms()
for vm in all_vms:
print(vm.name)
Метод 2: использование PowerCLI (PowerShell)
Пример кода:
# Connect to vCenter Server
Connect-VIServer -Server your_vcenter_ip -User your_username -Password your_password
# Retrieve all VMs
$allVMs = Get-VM
# Display VM names
foreach ($vm in $allVMs) {
Write-Host $vm.Name
}
Метод 3. Использование vSphere SDK для Java
Пример кода:
import com.vmware.vim25.*;
public class GetAllVMs {
public static void main(String[] args) {
try {
ServiceInstance serviceInstance = new ServiceInstance(new URL("https://your_vcenter_ip/sdk"),
"your_username", "your_password", true);
Folder rootFolder = serviceInstance.getRootFolder();
ManagedEntity[] vms = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");
for (ManagedEntity vm : vms) {
System.out.println(vm.getName());
}
serviceInstance.getServerConnection().logout();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Метод 4. Использование модуля VMware PowerCLI в PowerShell Core
Пример кода:
# Connect to vCenter Server
Connect-VIServer -Server your_vcenter_ip -User your_username -Password your_password
# Retrieve all VMs
$allVMs = Get-VM
# Display VM names
foreach ($vm in $allVMs) {
Write-Host $vm.Name
}
Метод 5. Использование vSphere REST API
Пример кода:
# Retrieve access token
curl -X POST -k -H "Content-Type: application/x-www-form-urlencoded" -d "username=your_username&password=your_password" "https://your_vcenter_ip/rest/com/vmware/cis/session"
# Retrieve all VMs
curl -X GET -k -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" "https://your_vcenter_ip/rest/vcenter/vm"
# Extract VM names from the response
# ...
# Cleanup: Logout session
curl -X DELETE -k -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" "https://your_vcenter_ip/rest/com/vmware/cis/session"
В этой статье мы рассмотрели пять различных методов получения всех виртуальных машин vSphere с помощью популярных языков программирования и инструментов. Независимо от того, предпочитаете ли вы Python, PowerShell, Java или REST API, теперь у вас есть целый ряд вариантов на выбор. Автоматизируя эту задачу, вы можете сэкономить время и усилия по управлению виртуализированной средой. Так зачем ждать? Начните изучать эти методы и улучшите свои навыки управления vSphere уже сегодня!