40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from pyVim.connect import SmartConnect, Disconnect
|
||
from pyVmomi import vim
|
||
from config.settings import VCENTER_USER, VCENTER_PASSWORD
|
||
from utils.logger import logger
|
||
|
||
|
||
def connect_to_vcenter(vcenter_host):
|
||
"""
|
||
连接到指定的vCenter服务器
|
||
:param vcenter_host: vCenter主机名/IP
|
||
:return: 成功返回ServiceInstance,失败返回None
|
||
"""
|
||
try:
|
||
# 禁用SSL证书验证(生产环境建议启用证书验证)
|
||
si = SmartConnect(
|
||
host=vcenter_host,
|
||
user=VCENTER_USER,
|
||
pwd=VCENTER_PASSWORD,
|
||
disableSslCertValidation=True
|
||
)
|
||
if not si:
|
||
logger.error(f"❌ 无法连接到vCenter: {vcenter_host}(无返回实例)")
|
||
return None
|
||
|
||
logger.info(f"✅ 成功连接到vCenter: {vcenter_host}")
|
||
return si
|
||
|
||
except Exception as e:
|
||
logger.error(f"❌ 连接vCenter {vcenter_host} 失败: {str(e)}")
|
||
return None
|
||
|
||
|
||
def disconnect_from_vcenter(si):
|
||
"""
|
||
关闭vCenter连接
|
||
:param si: ServiceInstance实例
|
||
"""
|
||
if si:
|
||
Disconnect(si)
|
||
logger.debug("已关闭vCenter连接") |