无法使用Python中的pyVmomi连接到vCenter / vSphere

问题描述 投票:0回答:1

我正在尝试使用 Python(版本 3.12.1)中的 pyVmomi 和不同的方法建立与我的 vSphere 实例(版本 7.0.3.01400)的简单连接 - 见下文。

此问题似乎与过时的 SSL 协议有关(此处不需要证书),并且我找不到任何有关如何实现此工作的最新示例。

请注意,我可以通过 REST API 和凭据连接到 vSphere,不会出现任何问题。

示例1:

context = None
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

s = SmartConnect(host=vCENTER_HOST, user=vCENTER_USERNAME, pwd=vCENTER_PASSWORD, port=int('443'),sslContext=context)
Disconnect(s)

from pyVim.connect import SmartConnect
from pyVmomi import vim
import ssl

context = None
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

s = SmartConnect(host=vCENTER_HOST, user=vCENTER_USERNAME, pwd=vCENTER_PASSWORD, port=int('443'),sslContext=context)

# Error: s = SmartConnect(host=vCENTER_HOST, user=vCENTER_USERNAME, pwd=vCENTER_PASSWORD, port=int('443'),sslContext=context)
# (line 961, in SmartConnect)    supportedVersion = __FindSupportedVersion(protocol, host, port, path,

示例2:

from pyVim.connect import SmartConnect
from pyVmomi import vim
import ssl

s = ssl.SSLContext(ssl.PROTOCOL_TLS)
s.Verify_mode = ssl.CERT_NONE

s = SmartConnect(host=vCENTER_HOST, user=vCENTER_USERNAME, pwd=vCENTER_PASSWORD, sslContext=s)

# Error: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated

任何帮助或示例脚本将非常感激

我尝试了几个示例脚本(例如https://vcloudnine.de/first-steps-with-python-and-pyvmomi-vsphere-sdk-for-python/),但它们都失败了,因为已经有几年了,而且没有更新。

vsphere pyvmomi
1个回答
0
投票

我的错误....我对主机使用了完整的 url(例如“https://myservername”),而它应该只是服务器名称或 IP(例如“myservername”)。太习惯其他需要完整 URL 的 API 系统了。

© www.soinside.com 2019 - 2024. All rights reserved.