问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

通过调用Vcenter-Api获取Vcenter中服务器信息

创作时间:
作者:
@小白创作中心

通过调用Vcenter-Api获取Vcenter中服务器信息

引用
CSDN
1.
https://blog.csdn.net/qq_29974229/article/details/137643629

本文将详细介绍如何通过调用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:虚拟机ID
  • name:虚拟机在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运维和系统管理具有重要参考价值。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号