Ошибка при подключении к ESXI через API python vsphere

Я создаю скрипт, который запрашивает у пользователя полное доменное имя хоста, а затем скрипт переводит этот хост в режим обслуживания. Я запускаю сценарий на компьютере управления Windows, который, очевидно, подключен к esxi-vcsa, на котором есть эти хосты. 11.11.11.5 — это IP-адрес vcsa.

from pyvim import connect
from pyVmomi import vim

fqdnInput = input("Enter FQDN of host: ")


host = connect.ConnectNoSSL("11.11.11.5", 443, root, lassword)
searcher = host.content.searchIndex
host = searcher.FindByDnsName(dnsName=fqdnInput, vmSearch=False)
host.EnterMaintenanceMode(0)

Когда я запускаю этот скрипт, я получаю следующую ошибку после ввода полного доменного имени. (Я пробовал как только имя хоста, так и полное имя host.domain).

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\task4.py", line 14, in <module>
    host = connect.ConnectNoSSL("11.11.11.5", 443, "root", "Pa$$w0rd")
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyvim\connect.py", line 308, in ConnectNoSSL
    mechanism=mechanism)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyvim\connect.py", line 266, in Connect
    keyFile, certFile, thumbprint, sslContext, connectionPoolTimeout)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyvim\connect.py", line 390, in __Login
    x = content.sessionManager.Login(user, pwd, None)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyVmomi\VmomiSupport.py", line 706, in <lambda>
    self.f(*(self.args + (obj,) + args), **kwargs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyVmomi\VmomiSupport.py", line 512, in _InvokeMethod
    return self._stub.InvokeMethod(self, info, args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\pyVmomi\SoapAdapter.py", line 1397, in InvokeMethod
    raise obj # pylint: disable-msg=E0702
pyVmomi.VmomiSupport.NoPermission: (vim.fault.NoPermission) {
   dynamicType = <unset>,
   dynamicProperty = (vmodl.DynamicProperty) [],
   msg = 'Permission to perform this operation was denied.',
   faultCause = <unset>,
   faultMessage = (vmodl.LocalizableMessage) [],
   object = 'vim.Folder:group-d1',
   privilegeId = 'System.View'
}

Помощь приветствуется.


person vmVisor    schedule 19.01.2020    source источник


Ответы (1)


Похоже, вы имеете дело с проблемой разрешений, а не с проблемой Python. Я предполагаю, что поисковик дает сбой, а это означает, что используемая вами учетная запись вообще не имеет доступа к инвентаризации vCenter.

Вы пробовали переключиться на другой аккаунт? Возможно, учетная запись «Администратор@vsphere.local»?

person Kyle Ruddy    schedule 05.02.2020