Установка OpenStack на Ubuntu. Проблема с подключением Neutron.

Вопрос или проблема

Я пытаюсь настроить OpenStack на одном узле, следуя этому руководству: http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-controller-node.html

Установка выполняется на виртуальной машине.

Мой /etc/hosts:

root@openstack:~/openstack# cat /etc/hosts
127.0.0.1   localhost
127.0.0.1   openstack
127.0.0.1   controller  
127.0.0.1   network
127.0.0.1   compute1

Я успешно прошел все шаги до установки neutron: http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-controller-node.html

У меня возникла проблема с подключением к neutron:

root@openstack:~/openstack# neutron ext-list
Unable to establish connection to http://controller:9696/v2.0/extensions.json

Когда я активирую опцию debug, получаю следующий трейс:

root@openstack:~/openstack# neutron ext-list --debug
DEBUG: keystoneclient.session REQ: curl -i -X GET http://controller:35357/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: keystoneclient.session RESP: [200] {'date': 'Mon, 15 Dec 2014 16:59:05 GMT', 'vary': 'X-Auth-Token', 'content-length': '421', 'content-type': 'application/json', 'x-distribution': 'Ubuntu'} 
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}, {"base": "application/xml", "type": "application/vnd.openstack.identity-v2.0+xml"}], "id": "v2.0", "links": [{"href": "http://controller:35357/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

DEBUG: stevedore.extension found extension EntryPoint.parse('table = cliff.formatters.table:TableFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('csv = cliff.formatters.commaseparated:CSVLister')
DEBUG: neutronclient.neutron.v2_0.extension.ListExt get_data(Namespace(columns=[], fields=[], formatter="table", max_width=0, quote_mode="nonnumeric", request_format="json", show_details=False))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://controller:35357/v2.0/tokens
DEBUG: keystoneclient.session REQ: curl -i -X GET http://controller:9696/v2.0/extensions.json -H "User-Agent: python-neutronclient" -H "Accept: application/json" -H "X-Auth-Token: ded80764051740a58da4bb80543cd69f"
ERROR: neutronclient.shell Unable to establish connection to http://controller:9696/v2.0/extensions.json
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 691, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 90, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 29, in run
    return super(OpenStackCommand, self).run(parsed_args)
  File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 91, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/common/command.py", line 35, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 669, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 638, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 610, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 99, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 301, in list_extensions
    return self.get(self.extensions_path, params=_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1321, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1298, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1241, in do_request
    content_type=self.content_type())
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 319, in do_request
    return self.request(url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 63, in request
    return self._request(url, method, body=body, headers=headers, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 314, in _request
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/keystoneclient/utils.py", line 318, in inner
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 324, in request
    resp = self._send_request(url, method, redirect, log, **kwargs)
  File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 359, in _send_request
    raise exceptions.ConnectionRefused(msg)
ConnectionRefused: Unable to establish connection to http://controller:9696/v2.0/extensions.json
Unable to establish connection to http://controller:9696/v2.0/extensions.json

Знаете, в чем может быть проблема?

Я нашел ошибку в /var/log/neutron/server.log. Это была проблема в конфигурации ml2_conf.ini (вместо gree должно быть gre).

Ответ или решение

Установка OpenStack на Ubuntu может быть вызовом, особенно если вы сталкиваетесь с проблемами подключения, как в случае с компонентом Neutron. Давайте разберем, как можно подойти к решению возникшей проблемы, проявившейся на этапе установки Neutron.

Теория

OpenStack представляет собой комплексный набор инструментов для создания облачных инфраструктур, и его установка требует четкой настройки различных компонентов, таких как Nova, Glance, Keystone и Neutron. Neutron отвечает за сетевую составляющую в OpenStack, предоставляя механизмы управления виртуальными сетями.

Ключевым аспектом в процессе установки является правильная конфигурация всех служб и их взаимодействие через определенные IP-адреса и порты. Так как в вашем случае проблема связана с невозможностью установления подключения к Neutron, мы можем предположить, что ошибка кроется в конфигурации IP-адресов или неверном указании сетевых настроек.

Пример

В предоставленной вами информации мы видим, что все шаги установки прошли успешно до момента настройки Neutron. Ошибка при выполнении команды neutron ext-list свидетельствует о проблемах связи между компонентами через указанный URL http://controller:9696/v2.0/extensions.json. Налицо проблемы с разрешением имен хостов и, возможно, неправильная конфигурация сетевых параметров.

Ваш файл /etc/hosts настроен так, что все имена (localhost, openstack, controller, network, compute1) привязаны к одному и тому же IP-адресу 127.0.0.1, что не соответствует реальной архитектуре взаимодействия компонентов OpenStack. В этом случае возникает проблема, так как элементы системы обращаются друг к другу через адреса, которые не ведут к реальным службам.

Приложение

Для решения проблемы с подключением Neutron следуйте следующему пошаговому подходу:

  1. Проверка конфигурации сети и DNS:

    • Обновите файл /etc/hosts, назначив реальные IP-адреса для каждого из компонентов (controller, network, compute1). Для этого нужно задействовать внутренние IP адреса, которые определены в вашей виртуальной сетевой конфигурации.
    <ваш.IP.адрес> controller
    <ваш.IP.адрес> network
    <ваш.IP.адрес> compute1
    • Проверьте, правильно ли настроены интерфейсы сети в вашей виртуальной машине. Каждый сервис должен видеть и быть доступным для других на соответствующих IP и портах.
  2. Модификация конфигурационных файлов Neutron:

    • Откройте файл конфигурации ml2_conf.ini и проверьте правильность всех параметров, особенно если используется туннельный протокол. Исправление опечатки с gree на gre — это критично.
    • Убедитесь, что все параметры, касающиеся контроллера и ссылок на другие компоненты, указаны корректно.
  3. Проверка состояния служб:

    • Убедитесь, что все необходимые службы OpenStack запущены. Вы можете проверить это с помощью команды:
    service neutron-server status

    Если любая служба не запущена, попробуйте перезапустить её:

    service neutron-server restart
  4. Проверка логов:

    • Анализируйте файлы логов, такие как /var/log/neutron/server.log, для выявления более детальных причин сбоя. Это может предоставить более ясную картину того, какая именно часть конфигурации приведена к ошибке.
  5. Тестирование и проверка:

    • После внесения изменений снова попробуйте выполнить команду neutron ext-list. Если сервис работает корректно, список доступных расширений будет выдан без ошибок.

Эти шаги должны помочь в устранении проблемы с подключением Neutron в вашей установке OpenStack. Важно уделять внимание каждому этапу настройки и проверять все точки соприкосновения системных компонентов.

Оцените материал
Добавить комментарий

Капча загружается...