Я пытаюсь управлять виртуальной машиной (и получать содержимое экрана) с помощью Python, размещенного на VMware vSphere/ESXi. Как это сделать?
Я не нашел подходящего способа сделать это и уже что-то пробовал. Как мне это сделать правильно?
Я уже пробовал получить билет с помощью vm.AcquireTicket('webmks') и патчил VNCDOTOOL для подключения к серверу веб-сокетов с помощью autobahn. (вероятно, неправильный подход):
# monkeypatch vncdotool for websockets
__old_vncdotool_factory_connect = vncdotool.client.factory_connect
def __vncdotool_factory_connect(factory: vncdotool.api.VNCDoToolFactory, url: vim.VirtualMachine.Ticket, *_):
factory = autobahn.twisted.WrappingWebSocketClientFactory(factory, url.url, reactor=vncdotool.client.reactor)
__old_vncdotool_factory_connect(factory, url.host, url.port, socket.AF_INET)
vncdotool.client.factory_connect = __vncdotool_factory_connect
vncdotool.api.factory_connect = __vncdotool_factory_connect
def __vncdotool_parse_server(server):
logger.debug("Received server parse request with ticket %s", server)
return (socket.AF_INET, server, -1)
vncdotool.command.parse_server = __vncdotool_parse_server
# ...
ticket = get_webmks_ticket(self.vSphere, self.vm)
self.client = vncdotool.api.connect(ticket)
# Some time later:
self.client.keyPress('enter')
Это не работает — когда я вызываю любую функцию VNCDOTOOL (например, self.client.keyPress('enter') или self.client.captureScreen('test. png')), поток зависает, и действие (в данном случае нажатие клавиши ввода и захват экрана) не происходит. Я ожидал, что он выполнит действие. Я также получаю это в журналах:
[2024-09-28 12:30:59,201] [twisted] [_legacy.py:147] INFO: Starting factory
[2024-09-28 12:30:59,201] [twisted] [_legacy.py:147] INFO: Starting factory
[2024-09-28 12:30:59,204] [twisted] [_legacy.py:147] INFO: Stopping factory
[2024-09-28 12:30:59,204] [twisted] [_legacy.py:147] INFO: Stopping factory
Подробнее здесь: https://stackoverflow.com/questions/790 ... get-the-vm
Как управлять виртуальной машиной VMware vSphere/ESXi с помощью Python и получить экран виртуальной машины? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Я не могу прокручивать командное окно виртуальной машины VMware esxi [закрыто]
Anonymous » » в форуме Linux - 0 Ответы
- 49 Просмотры
-
Последнее сообщение Anonymous
-