在你配置OpenStack网络(neutron)服务,你必须创建一个数据库,服务凭证和API端点。
完成下面的步骤以创建数据库:
用数据库连接客户端以 root 用户连接到数据库服务器:
$ mysql -u root -p
创建``neutron`` 数据库:
CREATE DATABASE neutron;
对``neutron`` 数据库授予恰当的访问权限,使用合适的密码替换``NEUTRON_DBPASS``:
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY 'NEUTRON_DBPASS';
退出数据库客户端。
获得 admin 凭证来获取只有管理员能执行命令的访问权限:
$ source admin-openrc.sh
要创建服务证书,完成这些步骤:
创建``neutron``用户:
$ openstack user create --domain default --password-prompt neutron
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | b20a6692f77b4258926881bf831eb683 |
| name | neutron |
+-----------+----------------------------------+
添加``admin`` 角色到``neutron`` 用户:
$ openstack role add --project service --user neutron admin
注解
这个命令执行后没有输出。
创建``neutron``服务实体:
$ openstack service create --name neutron \
--description "OpenStack Networking" network
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Networking |
| enabled | True |
| id | f71529314dab4a4d8eca427e701d209e |
| name | neutron |
| type | network |
+-------------+----------------------------------+
创建网络服务API端点:
$ openstack endpoint create --region RegionOne \
network public http://controller:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 85d80a6d02fc4b7683f611d7fc1493a3 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f71529314dab4a4d8eca427e701d209e |
| service_name | neutron |
| service_type | network |
| url | http://controller:9696 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
network internal http://controller:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 09753b537ac74422a68d2d791cf3714f |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f71529314dab4a4d8eca427e701d209e |
| service_name | neutron |
| service_type | network |
| url | http://controller:9696 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
network admin http://controller:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 1ee14289c9374dffb5db92a5c112fc4e |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | f71529314dab4a4d8eca427e701d209e |
| service_name | neutron |
| service_type | network |
| url | http://controller:9696 |
+--------------+----------------------------------+
您可以部署网络服务使用选项1和选项2代表的两种架构中的一个部署网络服务。
选项1部署部署最简单的架构,只支持绑定实例到公共网络。没有自服务网络,路由器和浮动IP地址。只有``admin``或者其它特权用户可以管理提供者网络。
选项2增强选项2,提供3层服务,支持绑定实例到自服务(私有)网络。``demo``或非特权用户可以管理自服务网络,包括路由器。路由器提供自服务网络和提供者网络之间的互通。同时,浮动IP地址提供从外部网络访问实例的能力,比如因特网。
注解
选项2同样提供实例到公共(提供者)网络。
选择一个以下的网络选项来配置服务指定它。之后,返回到这里,处理:ref:neutron-controller-metadata-agent。
The metadata agent provides configuration information such as credentials to instances.
编辑``/etc/neutron/metadata_agent.ini``文件并完成下面的操作:
在``[DEFAULT]``部分,配置访问参数:
[DEFAULT]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_region = RegionOne
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = neutron
password = NEUTRON_PASS
将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。
在``[DEFAULT]`` 部分,配置元数据主机:
[DEFAULT]
...
nova_metadata_ip = controller
在``[DEFAULT]`` 部分,配置元数据代理共享密码:
[DEFAULT]
...
metadata_proxy_shared_secret = METADATA_SECRET
用你为元数据代理选择的密码替换 METADATA_SECRET。
(可选的)为帮助排错,在 “[DEFAULT]”部分启用详细日志。
[DEFAULT]
...
verbose = True
编辑``/etc/nova/nova.conf``文件并完成下面操作:
在``[neutron]``部分,配置访问参数,启用元数据代理和配置secret:
[neutron]
...
url = http://controller:9696
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
service_metadata_proxy = True
metadata_proxy_shared_secret = METADATA_SECRET
将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。
用你为元数据代理选择的密码替换 METADATA_SECRET。
同步数据库:
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
注解
数据库的同步发生在 Networking 之后,因为脚本需要完成服务器和插件的配置文件。
重启计算API 服务:
# service nova-api restart
重启网络服务。
对所有网络选项:
# service neutron-server restart
# service neutron-plugin-linuxbridge-agent restart
# service neutron-dhcp-agent restart
# service neutron-metadata-agent restart
对网络选项2,同样重启layer-3服务:
# service neutron-l3-agent restart
默认情况下,Ubuntu 上的安装包会自动创建一个 SQLite 数据库。
因为这里配置使用SQL 数据库服务器,所以你可以SQLite 服务库文件:
# rm -f /var/lib/neutron/neutron.sqlite
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.