You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pyVmomi实现esxcli software sources vib get功能并获取VIB URL?

解决pyVmomi获取ESXi特定VIB详细信息(对应esxcli software sources vib get)的问题

核心对应关系与问题原因

esxcli software sources vib get对应的pyVmomi并行API是直接调用EsxCli接口执行该命令,而非使用imageConfigManager.fetchSoftwarePackages()——后者仅用于获取主机已安装的软件包元数据,不包含仓库源中的VIB信息,这就是你拿到的referenceurl为空的根本原因。

Python实现代码示例

  1. 连接ESXi并获取EsxCli实例:
from pyVim.connect import SmartConnect, Disconnect
import ssl

# 忽略SSL证书验证(生产环境建议配置合法证书)
context = ssl._create_unverified_context()
si = SmartConnect(host="ESXI_HOST_IP", user="USERNAME", pwd="PASSWORD", sslContext=context)

# 获取EsxCli操作对象
esx_cli = si.content.esxManager.esxCli
  1. 调用software.sources.vib.get获取目标VIB信息:
# 方式1:按VIB名称查询
vib_details = esx_cli.software.sources.vib.get(name="target-vib-name")

# 方式2:按仓库源URL查询该源下的所有VIB
# vib_details = esx_cli.software.sources.vib.get(source="http://your-repo-url")

# 解析并输出VIB属性
for vib in vib_details:
    print(f"VIB名称: {vib.Name}")
    print(f"版本: {vib.Version}")
    print(f"发布者: {vib.Vendor}")
    print(f"源URL: {vib.SourceUrl}")
    print(f"参考URL: {vib.ReferenceUrl}")

关键提示

直接通过EsxCli调用的逻辑和你原Ruby脚本中RbVmomi的调用完全对齐,能准确获取仓库源中VIB的完整属性,包括你需要的ReferenceUrl。

内容的提问来源于stack exchange,提问作者donny gat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 21:37:40