【问题标题】:how to get nova client (v1.1) to use ssh tunnel when retrieving server list检索服务器列表时如何让 nova 客户端(v1.1)使用 ssh 隧道
【发布时间】:2015-03-31 02:08:41
【问题描述】:

openstack nova 客户端非常适合我。我不知道如何让它使用我指定的本地 ssh 隧道 url,而不是它检索到的。所以:

from novaclient.v1_1 import client as nova_client
from pprint import pprint

self.__nova_client = nova_client.Client(
    'myusername',
    'mypassword',
    'mytenantname',
    'https://localhost:5443/v2.0',
    service_type='compute',
    insecure=True
)
for server in self.__nova_client.servers.list():
    pprint(server)

产量...

requests.exceptions.ConnectionError: HTTPConnectionPool(host='os-compute.vip.mysubdomain.mydomain.com', port=8774): Max retries exceeded with url: /v2/aa0dffecaef543aca072a26fdff5c92b/servers/detail (Caused by <class 'socket.error'>: [Errno 111] Connection refused)

因为从脚本运行的地方无法访问“os-compute.vip.mysubdomain.mydomain.com:8774”地址。

self.__nova_client = nova_client.Client() 位连接良好,因为它使用 'https://localhost:5443/v2.0' - 我提供的已建立隧道。我只需要一种方法来覆盖它试图与我设置的“localhost:8774”隧道连接的“os-compute.vip.mysubdomain.mydomain.com:8774”。但我不知道这是否/如何可能。

任何指导将不胜感激。

【问题讨论】:

    标签: python-2.7 openstack openstack-nova


    【解决方案1】:

    您的 nova 客户端正在通过 localhost 上的隧道设置从 keystone 拉取服务目录。您将需要显式覆盖服务目录中指定的端点。 一种方法是显式指定端点,而某些客户端允许您在构造 novaclient 时直接指定端点,但在构造对象后查看nova_client.management_url 并将其替换为您的本地主机地址。

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 2017-11-12
      • 2021-01-23
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      相关资源
      最近更新 更多