#python-3.x #esxi
Вопрос:
Я запускаю сценарий внутри esx (не в виртуальной машине, а на самом esx), и когда я пытаюсь его использовать socket.AF_VSOCK
, он говорит, что его не существует. Я получаю то же самое сообщение на машине Windows на esx. Я установил vm-инструменты и vmci_socket.h
существует.
Версия esxi-6.7, версия python-3.5
ОБНОВЛЕНИЕ: Я обнаружил , что семейство есть 40
, оно работает на Linux, но не на esxi
esxi:
import socket
s = socket.socket(40, socket.SOCK_STREAM)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/build/mts/release/bora-14320388/bora/build/esx/release/vmvisor/sys-boot/lib64/python3.5/socket.py", line 134, in __init__
OSError: [Errno 97] Address family not supported by protocol
линукс:
In [2]: s = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
In [3]: s
Out[3]: <socket.socket fd=13, family=AddressFamily.AF_VSOCK, type=SocketKind.SOCK_STREAM, proto=0, laddr=(4294967295, 4294967295)>
ОБНОВЛЕНИЕ 2:
На ESXi есть /dev/vsock
устройство, и оно возвращается 2
в качестве CID (как и ожидалось)
>>> import fcntl
>>> with open("/dev/vsock", "rb") as f:
... r = fcntl.ioctl(f, 1977, " ")
>>> r
b'x02x00x00x00'