Openstack Юнона Кунатум Шарм 14.04
Не могу создать сеть, частную или общедоступную:
# neutron net-create priv1 -v --debug
DEBUG: keystoneclient.session REQ: curl -i -X GET http://keystone1.maas17:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: keystoneclient.session RESP: [200] {'date': 'Wed, 26 Nov 2014 20:25:31 GMT', 'vary': 'X-Auth-Token', 'content-length': '426', '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://keystone1.maas17:5000/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('shell = cliff.formatters.shell:ShellFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('value = cliff.formatters.value:ValueFormatter')
DEBUG: neutronclient.neutron.v2_0.network.CreateNetwork get_data(Namespace(admin_state=True, columns=[], formatter='table', max_width=0, name=u'priv1', prefix='', request_format='json', tenant_id=None, variables=[]))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://keystone1.maas17:5000/v2.0/tokens
DEBUG: keystoneclient.session REQ: curl -i -X POST http://cloudctrl1.maas17:9696/v2.0/networks.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 678946673ed4436eb192de052323d535" -d '{"network": {"name": "priv1", "admin_state_up": true}}'
DEBUG: keystoneclient.session RESP:
DEBUG: keystoneclient.session Request returned failure status: 500
ERROR: neutronclient.shell Request Failed: internal server error while processing your request. (HTTP 500) (Request-ID: req-2568911b-1ad9-4349-b1c1-3299159e25e9)
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 467, in get_data
data = obj_creator(body)
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 350, in create_network
return self.post(self.networks_path, body=body)
File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1326, in post
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 339, in request
raise exceptions.from_response(resp, method, url)
InternalServerError: Request Failed: internal server error while processing your request. (HTTP 500) (Request-ID: req-2568911b-1ad9-4349-b1c1-3299159e25e9)
Request Failed: internal server error while processing your request. (HTTP 500) (Request-ID: req-2568911b-1ad9-4349-b1c1-3299159e25e9)
root@network1:/etc/neutron/plugins/ml2#
# neutron net-create ext-net1 --shared --router:external True --provider:physical_network external --provider:network_type gre -v --debug
DEBUG: keystoneclient.session REQ: curl -i -X GET http://keystone1.maas17:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: keystoneclient.session RESP: [200] {'date': 'Wed, 26 Nov 2014 19:53:12 GMT', 'vary': 'X-Auth-Token', 'content-length': '426', '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://keystone1.maas17:5000/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('shell = cliff.formatters.shell:ShellFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('value = cliff.formatters.value:ValueFormatter')
DEBUG: neutronclient.neutron.v2_0.network.CreateNetwork get_data(Namespace(admin_state=True, columns=[], formatter='table', max_width=0, name=u'ext-net1', prefix='', request_format='json', shared=True, tenant_id=None, variables=[]))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://keystone1.maas17:5000/v2.0/tokens
DEBUG: keystoneclient.session REQ: curl -i -X POST http://cloudctrl1.maas17:9696/v2.0/networks.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 040a237877344dc6a5f2d241af8b15cb" -d '{"network": {"router:external": "True", "name": "ext-net1", "provider:physical_network": "external", "admin_state_up": true, "shared": true, "provider:network_type": "gre"}}'
DEBUG: keystoneclient.session RESP:
DEBUG: keystoneclient.session Request returned failure status: 400
ERROR: neutronclient.shell Invalid input for operation: provider:physical_network specified for gre network. (HTTP 400) (Request-ID: req-183262ab-06ea-4113-ae12-a877cbc2a804)
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 467, in get_data
data = obj_creator(body)
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 350, in create_network
return self.post(self.networks_path, body=body)
File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1326, in post
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 339, in request
raise exceptions.from_response(resp, method, url)
BadRequest: Invalid input for operation: provider:physical_network specified for gre network. (HTTP 400) (Request-ID: req-183262ab-06ea-4113-ae12-a877cbc2a804)
Invalid input for operation: provider:physical_network specified for gre network. (HTTP 400) (Request-ID: req-183262ab-06ea-4113-ae12-a877cbc2a804)
root@network1:/etc/neutron/plugins/ml2#
Пробовал разные комбинации vxlan, local, flat и т. Д. Безрезультатно. Насколько я вижу, нейтронные службы запущены и работают, например, на сетевом узле, где я пытался это сделать выше, у меня есть:
neutron agent-list
+--------------------------------------+--------------------+----------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+----------+-------+----------------+---------------------------+
| 2b1fcbf4-f139-4c46-a995-f04260df9851 | Metering agent | network1 | :-) | True | neutron-metering-agent |
| 4003b4f5-698e-4536-8eaf-eafafdbf2e97 | L3 agent | network2 | xxx | True | neutron-l3-agent |
| 4615ae54-64ee-4245-893c-ad60f59c8e01 | Loadbalancer agent | network2 | xxx | True | neutron-lbaas-agent |
| 5e6e8b63-e3ef-4d6f-bcdd-1df50522583f | L3 agent | network1 | :-) | True | neutron-l3-agent |
| 67d47279-7b5e-4490-ad95-7737d38f5fae | DHCP agent | network1 | :-) | True | neutron-dhcp-agent |
| 6827229d-3ad1-4e3b-982f-eada75749471 | Open vSwitch agent | network2 | xxx | True | neutron-openvswitch-agent |
| 85974531-5460-45fa-a107-1162476c7a5d | Open vSwitch agent | network1 | :-) | True | neutron-openvswitch-agent |
| 9bebaae6-372b-4261-9c2e-de90cd41655e | Loadbalancer agent | network1 | :-) | True | neutron-lbaas-agent |
| b8f50df6-30b0-4de1-970a-aa30597c5989 | Metering agent | network2 | xxx | True | neutron-metering-agent |
| e4bce161-fd34-4020-a23b-6c64403fbb4b | Open vSwitch agent | compute1 | :-) | True | neutron-openvswitch-agent |
| ef7e1ede-6f6e-4062-868c-27ba1aae20a6 | Metadata agent | network1 | :-) | True | neutron-metadata-agent |
| ef8bf8e7-74ec-49a8-9ccc-9bae097a1a49 | Metadata agent | network2 | xxx | True | neutron-metadata-agent |
| f0cf3fa1-75d1-4065-af80-a90797420731 | DHCP agent | network2 | xxx | True | neutron-dhcp-agent |
+--------------------------------------+--------------------+----------+-------+----------------+---------------------------+
(network2 был моим вторым нейтронным узлом, который теперь удален.) Кажется, также присутствуют все расширения:
# neutron ext-list
+-----------------------+-----------------------------------------------+
| alias | name |
+-----------------------+-----------------------------------------------+
| vpnaas | VPN service |
| service-type | Neutron Service Type Management |
| ext-gw-mode | Neutron L3 Configurable external gateway mode |
| l3_agent_scheduler | L3 Agent Scheduler |
| lbaas_agent_scheduler | Loadbalancer Agent Scheduler |
| fwaas | Firewall service |
| binding | Port Binding |
| metering | Neutron Metering |
| agent | agent |
| quotas | Quota management support |
| dhcp_agent_scheduler | DHCP Agent Scheduler |
| l3-ha | HA Router extension |
| multi-provider | Multi Provider Network |
| external-net | Neutron external network |
| router | Neutron L3 Router |
| dvr | Distributed Virtual Router |
| extra_dhcp_opt | Neutron Extra DHCP opts |
| provider | Provider Network |
| lbaas | LoadBalancing service |
| extraroute | Neutron Extra Route |
+-----------------------+-----------------------------------------------+
Прошел через все созданные пользователем файлы конфигурации и сравнил их с http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-controller-node.html, http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-network-node.html и http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-compute-node.html. Они все примерно одинаковы. Выделяется переменная "rpc_backend", но она, похоже, не связана с этой ошибкой.
Какие-нибудь мысли?
Ура,
Редактировать 1: Оказывается, что квантовое очарование использует старые таблицы MySQL Icehouse, и они должны быть обновлены до Juno. Итак, на узле контроллера облака сделайте следующее:
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini stamp icehouse
neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno
См. http://www.gossamer-threads.com/lists/openstack/dev/42055 для получения подробной информации. Это разрешит часть создания частной сети, т.е.
# neutron net-create priv1 -v --debug
DEBUG: keystoneclient.session REQ: curl -i -X GET http://keystone1.maas17:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: keystoneclient.session RESP: [200] {'date': 'Wed, 26 Nov 2014 21:37:43 GMT', 'vary': 'X-Auth-Token', 'content-length': '426', '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://keystone1.maas17:5000/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('shell = cliff.formatters.shell:ShellFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('value = cliff.formatters.value:ValueFormatter')
DEBUG: neutronclient.neutron.v2_0.network.CreateNetwork get_data(Namespace(admin_state=True, columns=[], formatter='table', max_width=0, name=u'priv1', prefix='', request_format='json', tenant_id=None, variables=[]))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to http://keystone1.maas17:5000/v2.0/tokens
DEBUG: keystoneclient.session REQ: curl -i -X POST http://cloudctrl1.maas17:9696/v2.0/networks.json -H "User-Agent: python-neutronclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 7f15b7c51f92430db05fd8c8c95e6651" -d '{"network": {"name": "priv1", "admin_state_up": true}}'
DEBUG: keystoneclient.session RESP: [201] {'date': 'Wed, 26 Nov 2014 21:37:42 GMT', 'content-length': '325', 'content-type': 'application/json; charset=UTF-8', 'x-openstack-request-id': 'req-44115e75-7f54-4561-a891-69fcf39bd7a7'}
RESP BODY: {"network": {"status": "ACTIVE", "subnets": [], "name": "priv1", "provider:physical_network": null, "admin_state_up": true, "tenant_id": "0193ec8604554ee98904468f0ddea146", "provider:network_type": "gre", "router:external": false, "shared": false, "id": "3ac7737a-25c2-4881-8c2e-d4f105d6acde", "provider:segmentation_id": 1}}
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| id | 3ac7737a-25c2-4881-8c2e-d4f105d6acde |
| name | priv1 |
| provider:network_type | gre |
| provider:physical_network | |
| provider:segmentation_id | 1 |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 0193ec8604554ee98904468f0ddea146 |
+---------------------------+--------------------------------------+
К сожалению, проблема с внешней сетью остается прежней
Редактировать 2: Это обходной путь для создания внешних сетей. Начал с создания частной сети через cli, а затем изменил ее атрибуты на shared и public через веб-интерфейс! Остальные действия по созданию сети в соответствии с http://docs.openstack.org/juno/install-guide/install/apt/content/neutron-initial-networks.html, похоже, проходят гладко. Однако не может пропинговать внешний шлюз. Его статус в графическом интерфейсе не работает, и я получаю следующее в vpn_agent.log:
2014-11-26 22:04:00.003 12736 ERROR neutron.agent.linux.utils [-]
Command: ['sudo', '/usr/bin/neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec', 'qrouter-95a43742-f822-4e66-839c-3c3b12e00de3', 'ipsec', 'whack', '--ctlbase', '/var/lib/neutron/ipsec/95a43742-f822-4e66-839c-3c3b12e00de3/var/run/pluto', '--status']
Exit code: 1
Stdout: ''
Stderr: 'whack: Pluto is not running (no "/var/lib/neutron/ipsec/95a43742-f822-4e66-839c-3c3b12e00de3/var/run/pluto.ctl")\n'
2014-11-26 22:05:00.525 12736 ERROR neutron.agent.linux.utils [-]
Command: ['sudo', '/usr/bin/neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec', 'qrouter-95a43742-f822-4e66-839c-3c3b12e00de3', 'ipsec', 'whack', '--ctlbase', '/var/lib/neutron/ipsec/95a43742-f822-4e66-839c-3c3b12e00de3/var/run/pluto', '--status']
Exit code: 1
Stdout: ''
Stderr: 'whack: Pluto is not running (no "/var/lib/neutron/ipsec/95a43742-f822-4e66-839c-3c3b12e00de3/var/run/pluto.ctl")\n'
Редактировать 3: ошибка Плутона оказалась несущественной; Однако плохой проводки не было!