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

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

文章目录

  • 通过调用Vcenter-Api获取Vcenter中服务器信息
  • 1. 获取Vmware API帮助文档
  • 2. 获取访问凭证
  • 3. 获取服务器清单
  • 4. 获取服务器更多信息
  • 5. 获取虚机更多信息
  • 6. 获取磁盘信息
  • 7. 获取操作系统相关

1. 获取Vmware API帮助文档

https://developer.vmware.com/apis/vsphere-automation/latest/

2. 获取访问凭证

文档对应url:https://developer.vmware.com/apis/vsphere-automation/latest/cis/api/session/post/
注意这里获取凭证应该是使用post方式
在这里插入图片描述
将调用地址复制出来:https://{api_host}/api/session
将{api_host}替换成我们实际Vcenter地址192.168.0.200
替换后就成了https://192.168.0.200/api/session
方法设置为POST
在这里插入图片描述

3. 获取服务器清单

url替换成https://192.168.0.200/api/vcenter/vm
方法改为GET
Headers中key为vmware-api-session-id
value为我们刚才拿到的token

在这里插入图片描述
这样我们就拿到了这个Vc上的服务器清单

4. 获取服务器更多信息

以下内容是通过https://192.168.0.200/api/vcenter/vm查询到的某一个服务器的信息

    {
        "memory_size_MiB": 8192,
        "vm": "vm-12311",
        "name": "TEST-WEAPP",
        "power_state": "POWERED_ON",
        "cpu_count": 2
    },
key含义
memory_size_MiB虚拟机总内存
vm虚拟机ID(这个后续会用到)
name虚拟机在Vcenter中的名字
power_state电源状态
cpu_count虚拟机CPU个数

5. 获取虚机更多信息

方法GET,URL https://192.168.0.200/api/vcenter/vm/vm-12311
在这里插入图片描述
以下是返回的部分内容

{
    "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",
    "floppies": {},
"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中拿到大部分关于这台服务器的信息,比如:

KEY含义
cdroms关于虚拟光驱的内容,可以看到我们这里用了ISO
memory内存详细信息
cpucpu相关信息
nics网卡的一些信息,这里我隐藏掉了
disks磁盘的一些信息

6. 获取磁盘信息

这里我们拿到了部分磁盘的信息,磁盘的总大小,还有存储位置
但和我们实际想要的内容是有差距的

"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
        }
    },

我们更像要的内容是,盘符,分区格式,磁盘总大小,剩余空间这些信息.
我们可以用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
    }
}
KEY含义
free_space可用空间KB
filesystem文件系统格式
capacity分区总大小KB
C:\或D:\Windows盘符
/home或则/datalinux盘符

现在我们可以很简单的通过遍历json进行简单的加工就能获取到我们想要的具体数据

7. 获取操作系统相关

get访问https://192.168.0.200/api/vcenter/vm/vm-12311/guest/identity

{
    "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"
}
KEY含义
default_message操作系统版本
ip_address服务器ip地址
family操作系统类型
host_name服务器名

至此已经通过调用Vcenter-Api获取到了大部分Vcenter中服务器信息
后续完善到之前CMDB中去.总的来说Vcenter的信息需要多次从API中取出,会比云服务器稍微麻烦一点点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/543237.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

建模设计软件 Archicad 27 for mac激活版

在建筑设计领域,每一次技术的革新都意味着设计效率和质量的飞跃。Archicad 27 for Mac,就是这样一款引领行业变革的设计软件。 Archicad 27凭借出色的性能优化和强大的功能更新,为Mac用户带来了前所未有的建筑设计体验。它支持BIM&#xff08…

深入理解Cortex-M7 SVC和PendSV

1前言 1.1 PendSV 在ARM V7上,PendSV用来作为RTOS调度器的御用通道,上下文切换,任务调度都是在其ISR中实现的。所谓pend,字面意思即有悬起等待的意思,ARM官方也明确说明,PendSV应该在其他异常处理完毕后执…

GPT国内怎么用?4月最新版本来了

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

Datax,hbase与mysql数据相互同步

参考文章:datax mysql 和hbase的 相互导入 目录 0、软件版本说明 1、hbase数据同步至mysql 1.1、hbase数据 1.2、mysql数据 1.3、json脚本(hbase2mysql.json) 1.4、同步成功日志 2、mysql数据同步至hbase 1.1、hbase数据 1.2、mysql…

Linux 快问快答

如果对于找 Java 后端开发的话,我感觉会这几个差不多了,面试官应该不会问的这么详细吧。一般就问问 Linux 的几个常用的命令,然后做一些简单的性能排查就好了。如果面试被问到另外的问题,那我再补充进来,现在先掌握这么…

ZISUOJ 数据结构-线性表

题目列表: 问题 A: 逆序链表建立 思路: 可以使用头插法插入所有元素后正序遍历输出或者使用尾插法逆序遍历,推荐使用双链表。这是链表系列的第一个题,那这个题下面的参考题解的各种解法我会尽可能写全一些。 参考题解1&#xff0…

《前端面试题》- JS基础 - 防抖和节流

在界面触发点击,滚动,输入校验等事件时,如果对事件的触发频率不加以限制,会给浏览器增加负担,且对用户不友好。防抖和节流就是针对类似情况的解决方案。 防抖 防抖(debounce):当连续触发事件时&#xff0…

攻防世界:level2[WriteUP]

用checksec、file命令查看文件属性与防护 32位小端序二进制文件 把文件丢进IDA进行逆向分析 在main函数中可以看到一个vulnerable_function函数:易受攻击的函数 双击该函数名称查看里面的内容 按F5显示vulnerable_function的伪代码 可以看到v1数组长度136但最后…

什么是JAVA面向对象

一,什么是面向对象: 我们以前的项目都是面向过程的,一个完整的项目所有的代码都写在一个类里 这就叫面向过程。 面向对象,是指在写大型项目时,多人分工合作,为了代码看上去简洁美观,会将不同的…

量子信息产业生态研究(一):关于《量子技术公司营销指南(2023)》的讨论

写在前面。量子行业媒体量子内参(Quantum Insider)编制的《量子技术公司营销指南》是一本实用的英文手册,它旨在帮助量子科技公司建立有效的营销策略,同时了解如何将自己定位成各自的行业专家。本文对这篇指南的主要内容进行了翻译…

ubuntu安装vulnhub

文章目录 1.下载docker2.申请加速器3.安装pip4.安装docker-compose5.安装git6.安装vulnhub文件7.运行vulhub中的靶机TypeError: kwargs_from_env() got an unexpected keyword argument ssl_version报错8.tomcat-----CVE-2017-12615(任意文件上传)1.访问192.168.9.101:80802.bp…

C++实现AVL树

文章目录 一、平衡树的优势二、二叉平衡搜索树的节点定义三、二叉搜索树的插入3.1 寻找插入位置3.2 开始判定平衡因子,平衡因子有变就开始旋转3.2.1 左旋的情况3.2.2 左旋代码(一定要考虑平衡因子为2或者-2的节点是否有父节点)3.2.2 右旋的情…

mmdetection模型使用mmdeploy部署在windows上的c++部署流程【详细全面版】

0. 前置说明: 该文档适用于:已经使用mmdetection训练好了模型,并且完成了模型转换。要进行模型部署了。 1. 概述 MMDeploy 定义的模型部署流程,如下图所示: 模型转换【待撰写,敬请期待…】 主要功能是:把输入的模型格式,转换为目标设备的推理引擎所要求的模型格式…

2440LED点灯、K1~K6按键、24401中断、2440时钟

我要成为嵌入式高手之4月12日ARM第七天!! ———————————————————————————— 2440GPIO GPIO:通用目的输入输出 LED 要把GPBCON初始化 地址是固定的,可以当做无符号int型 控制所有灯就需要初始化GPBCO…

还原matlab编辑器窗口和主窗口分开的问题

问题 matlab不知道早点的,点击运行后会弹出新的窗口,咋整都恢复不了 解决方案 首先,在编辑器窗口下,按ctrlshiftD,此时编辑器窗口和主窗口就合并了,问题解决。

Andriod设置背景颜色简单教学

首先,打开Android studio的程序应用,找到File,然后点击Settings. 第二步,弹出窗口,点击Appearance,进入Background image... 第三步,选择本地文件夹的图片 选择一张自己合适的图片设为该界面的背景图,完成…

PyQt5结合Yolo框架打包python为exe文件完整流程

一、准备 1.安装 pyinstaller pip install pyinstaller 更新(初次安装忽略) pip install --upgrade pyinstaller 2.安装 auto-py-to-exe 安装 pip install auto-py-to-exe 打开工具 auto-py-to-exe.exe auto-py-to-exe 可视化转换工具&#xff1…

LeetCode 2924.找到冠军 II:脑筋急转弯——只关心入度

【LetMeFly】2924.找到冠军 II:脑筋急转弯——只关心入度 力扣题目链接:https://leetcode.cn/problems/find-champion-ii/ 一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。每支队伍也是 有向无环图(DAG) 上的一个节…

QT助手翻译【QT 5.14】 -----QPushButton

目录 1 属性 2 公共职能 3 重新实现的公共功能 4 公用插槽 5 受保护的功能 6 保护方法 7 详细说明 1 属性 自动默认值:bool 此属性保存按钮是否为自动默认按钮 如果此属性设置为true,则该按钮为自动默认按钮。 在某些GUI样式中&a…

std::stringstream

std::stringstream 是 C 标准库中的一个类,用于对字符串进行输入输出操作,类似于文件流(std::ifstream 和 std::ofstream)。它允许你像使用 std::cin 和 std::cout 一样使用字符串。 std::stringstream 可以将字符串作为输入源&am…