Вопрос или проблема
Я пытаюсь настроить 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 следуйте следующему пошаговому подходу:
-
Проверка конфигурации сети и DNS:
- Обновите файл
/etc/hosts
, назначив реальные IP-адреса для каждого из компонентов (controller
,network
,compute1
). Для этого нужно задействовать внутренние IP адреса, которые определены в вашей виртуальной сетевой конфигурации.
<ваш.IP.адрес> controller <ваш.IP.адрес> network <ваш.IP.адрес> compute1
- Проверьте, правильно ли настроены интерфейсы сети в вашей виртуальной машине. Каждый сервис должен видеть и быть доступным для других на соответствующих IP и портах.
- Обновите файл
-
Модификация конфигурационных файлов Neutron:
- Откройте файл конфигурации
ml2_conf.ini
и проверьте правильность всех параметров, особенно если используется туннельный протокол. Исправление опечатки сgree
наgre
— это критично. - Убедитесь, что все параметры, касающиеся контроллера и ссылок на другие компоненты, указаны корректно.
- Откройте файл конфигурации
-
Проверка состояния служб:
- Убедитесь, что все необходимые службы OpenStack запущены. Вы можете проверить это с помощью команды:
service neutron-server status
Если любая служба не запущена, попробуйте перезапустить её:
service neutron-server restart
-
Проверка логов:
- Анализируйте файлы логов, такие как
/var/log/neutron/server.log
, для выявления более детальных причин сбоя. Это может предоставить более ясную картину того, какая именно часть конфигурации приведена к ошибке.
- Анализируйте файлы логов, такие как
-
Тестирование и проверка:
- После внесения изменений снова попробуйте выполнить команду
neutron ext-list
. Если сервис работает корректно, список доступных расширений будет выдан без ошибок.
- После внесения изменений снова попробуйте выполнить команду
Эти шаги должны помочь в устранении проблемы с подключением Neutron в вашей установке OpenStack. Важно уделять внимание каждому этапу настройки и проверять все точки соприкосновения системных компонентов.