我正在尝试在私有Openstack云上部署应用程序。该应用程序基于客户端 - 服务器模型,服务器在云上的虚拟机上运行并具有浮动IP地址。当客户端(在云端或外部运行)通过REST API查询时,服务器会在需要提供查询时生成云中的本地虚拟机(不具有浮动IP)。我正在使用nova客户端API来生成虚拟机。
从服务器生成云中的本地VM后,我尝试使用Fabric在本地VM上复制并运行代码。当我尝试运行Fabric任务来复制代码时,我收到此错误 -
DEBUG MSG:: command to run - python copyCode.py <local VM's IP>
Fatal error: Low level socket error connecting to host <local VM's IP> on port 22: No route to host (tried 1 time)
Underlying exception:
No route to host
Aborting.
其中copyCode.py
(使用subprocess.Popen
从服务器调用的脚本)具有使用put
API的Fabric任务,如here所示。
我已经禁用了服务器上的主机密钥检查,如here所示,所以我认为问题可能不会因为身份验证要求而出现。我也可以在服务器上运行此进程时从另一个shell ssh /运行python copyCode.py <local VM's IP>
命令以获得所需的结果(即代码被复制),而不会产生任何此类错误。
我在这里遗漏了什么吗?任何见解都将不胜感激。