0

我正在使用pysphere与我的 esxi 服务器交互。

我尝试使用的功能之一是 send_file(在此处解释)。这会导致以下异常:

  File "/usr/local/lib/python2.7/dist-packages/pysphere/vi_virtual_machine.py", line 1282, in send_file
    resp = opener.open(request)
  File "/usr/lib/python2.7/urllib2.py", line 410, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 500: Internal Server Error

我启用了跟踪文件,它们看起来像这样(我正在显示响应)

RESPONSE:
200
OK
-------
Date: Wed, 10 Dec 2014 07:03:21 GMT
Cache-Control: no-cache
Connection: Keep-Alive
Content-Type: text/xml; charset=utf-8
Content-Length: 521

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<InitiateFileTransferToGuestResponse xmlns="urn:vim25"><returnval>https://*:443/guestFile?id=11&amp;token=52548475-79f4-6b02-a207-be5d1e3b0a8511</returnval></InitiateFileTransferToGuestResponse>
</soapenv:Body>
</soapenv:Envelope>

在 esxi 服务器本身上,我可以在“最近的任务”中看到已发出传输文件的请求。

在这个阶段我被难住了。我已经检查了我的所有设置至少五次。我已经测试过我能够执行其他操作,并且它们似乎都可以正常工作。我能做些什么呢?我需要在 esxi 服务器中启用一些设置吗?虚拟机?防火墙上的东西可能吗?

类似的问题:https ://code.google.com/p/pysphere/issues/detail?id=53


编辑:我想要做的是能够将文件传输到虚拟机。如果有另一种可靠的方法也很好。

4

1 回答 1

0

我尝试在 pysphere 中使用 send_file,它既痛苦又缓慢。由于某种原因,发送文件时二进制文件有问题。我的解决方法:用你的二进制文件创建 iso 文件,将它安装在虚拟机中(pysphere api 存在),创建 bat 文件(它应该找到正确的 cdrom 并复制你的文件)。通过 send_file 发送批次。通过启动进程运行它。

Yapp,send_files 遇到大文件问题,需要使用小技巧https://code.google.com/p/pysphere/issues/detail?id=16

于 2015-06-10T16:25:38.043 回答