通过调用Vcenter-Api获取Vcenter中服务器信息
通过调用Vcenter-Api获取Vcenter中服务器信息
本文将详细介绍如何通过调用VMware vCenter API获取服务器信息。通过API,我们可以获取服务器清单、虚机详细信息、磁盘信息以及操作系统信息等关键数据。
1. 获取VMware API帮助文档
访问VMware官方API文档网站:https://developer.vmware.com/apis/vsphere-automation/latest/
2. 获取访问凭证
访问凭证的获取需要通过POST请求完成。具体URL为:https://{api_host}/api/session
,其中{api_host}
需要替换为实际的vCenter地址,例如192.168.0.200
。
将调用地址替换为实际的vCenter地址后,使用POST方法进行请求。
3. 获取服务器清单
使用GET方法访问以下URL:https://192.168.0.200/api/vcenter/vm
。在Headers中添加vmware-api-session-id
,并将值设置为刚才获取的token。
4. 获取服务器更多信息
通过以下URL可以获取特定服务器的详细信息:https://192.168.0.200/api/vcenter/vm/vm-12311
。返回的JSON数据包含服务器的内存大小、虚拟机ID、名称、电源状态和CPU数量等信息。
{
"memory_size_MiB": 8192,
"vm": "vm-12311",
"name": "TEST-WEAPP",
"power_state": "POWERED_ON",
"cpu_count": 2
}
其中:
memory_size_MiB
:虚拟机总内存vm
:虚拟机IDname
:虚拟机在vCenter中的名字power_state
:电源状态cpu_count
:虚拟机CPU个数
5. 获取虚机更多信息
通过GET方法访问https://192.168.0.200/api/vcenter/vm/vm-12311
,可以获取更详细的虚机信息,包括CD-ROM、内存、CPU、SCSI适配器、电源状态、磁盘、网卡信息、启动设置等。
{
"instant_clone_frozen": false,
"cdroms": {
"16000": {
"start_connected": false,
"backing": {
"iso_file": "[back01] ISO/Windows Server/2016_64.ISO",
"type": "ISO_FILE"
},
"allow_guest_control": true,
"label": "CD/DVD drive 1",
"state": "CONNECTED",
"type": "SATA",
"sata": {
"bus": 0,
"unit": 0
}
}
},
"memory": {
"hot_add_increment_size_MiB": 4,
"size_MiB": 8192,
"hot_add_enabled": true,
"hot_add_limit_MiB": 131072
},
"cpu": {
"hot_remove_enabled": false,
"count": 2,
"hot_add_enabled": true,
"cores_per_socket": 1
},
"scsi_adapters": {
"1000": {
"pci_slot_number": 160,
"scsi": {
"bus": 0,
"unit": 7
},
"label": "SCSI controller 0",
"sharing": "NONE",
"type": "LSILOGICSAS"
}
},
"power_state": "POWERED_ON",
"disks": {
"2000": {
"scsi": {
"bus": 0,
"unit": 0
},
"backing": {
"vmdk_file": "[data01] TEST-WEAPP/TEST-WEAPP-000001.vmdk",
"type": "VMDK_FILE"
},
"label": "Hard disk 1",
"type": "SCSI",
"capacity": 53687091200
},
"2001": {
"scsi": {
"bus": 0,
"unit": 1
},
"backing": {
"vmdk_file": "[data01] TEST-WEAPP/TEST-WEAPP_1-000001.vmdk",
"type": "VMDK_FILE"
},
"label": "Hard disk 2",
"type": "SCSI",
"capacity": 107374182400
}
},
"nvme_adapters": {},
"name": "TEST-WEAPP",
"boot": {
"delay": 0,
"retry_delay": 10000,
"enter_setup_mode": false,
"type": "BIOS",
"retry": false
},
"serial_ports": {},
"boot_devices": [],
"guest_OS": "WINDOWS_9_SERVER_64",
"hardware": {
"upgrade_policy": "NEVER",
"upgrade_status": "NONE",
"version": "VMX_19"
}
}
可以从返回的JSON中获取CD-ROM、内存、CPU、SCSI适配器、电源状态、磁盘等信息。
6. 获取磁盘信息
通过GET方法访问https://192.168.0.200/api/vcenter/vm/vm-12311/guest/local-filesystem
,可以获取磁盘的详细信息,包括盘符、分区格式、磁盘总大小和剩余空间等。
{
"C:\\": {
"mappings": [
{
"disk": "2000"
}
],
"free_space": 16884203520,
"filesystem": "NTFS",
"capacity": 53159653376
},
"D:\\": {
"mappings": [
{
"disk": "2001"
}
],
"free_space": 60841975808,
"filesystem": "NTFS",
"capacity": 107371032576
}
}
其中:
free_space
:可用空间(KB)filesystem
:文件系统格式capacity
:分区总大小(KB)C:\
或D:\
:Windows盘符/home
或/data
:Linux盘符
7. 获取操作系统相关
通过GET方法访问https://192.168.0.200/api/vcenter/vm/vm-12311/guest/identity
,可以获取操作系统版本、IP地址、操作系统类型和主机名等信息。
{
"full_name": {
"args": [],
"default_message": "Microsoft Windows Server 2016 (64-bit)",
"id": "vmsg.guestos.windows444rver64Guest.label"
},
"name": "WINDOWS_9_SERVER_64",
"ip_address": "192.168.2.25",
"family": "WINDOWS",
"host_name": "TEST-WEAPP"
}
其中:
default_message
:操作系统版本ip_address
:服务器IP地址family
:操作系统类型host_name
:服务器名
通过以上步骤,可以全面获取vCenter中服务器的详细信息。虽然需要多次调用API,但这些信息对于IT运维和系统管理具有重要参考价值。