安装和配置控制器节点¶
先决条件¶
在配置 OpenStack Networking (neutron) 服务之前,您必须创建数据库、服务凭证和 API 端点。
要创建数据库,请完成以下步骤
使用数据库访问客户端以
root用户身份连接到数据库服务器$ mysql -u root -p
创建
neutron数据库MariaDB [(none)]> CREATE DATABASE neutron;授予
neutron数据库适当的访问权限,将NEUTRON_DBPASS替换为合适的密码MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \ IDENTIFIED BY 'NEUTRON_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \ IDENTIFIED BY 'NEUTRON_DBPASS';
退出数据库访问客户端。
激活
admin凭证以访问仅管理员可用的 CLI 命令$ . admin-openrc
要创建服务凭证,请完成以下步骤
创建
neutron用户$ openstack user create --domain default --password-prompt neutron User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | fdb0f541e28141719b6a43c8944bf1fb | | name | neutron | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
将
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 | +-------------+----------------------------------+
创建 Networking 服务 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 表示的两种架构之一来部署 Networking 服务。
选项 1 部署最简单的架构,仅支持将实例连接到提供者(外部)网络。不支持自服务(私有)网络、路由器或浮动 IP 地址。只有 admin 或其他特权用户可以管理提供者网络。
选项 2 在选项 1 的基础上增加了支持将实例连接到自服务网络的第 3 层服务。 demo 或其他非特权用户可以管理自服务网络,包括提供自服务网络和提供者网络之间连接的路由器。 此外,浮动 IP 地址通过外部网络(如互联网)为使用自服务网络的实例提供连接。
自服务网络通常使用覆盖网络。 覆盖网络协议(如 VXLAN)包含额外的标头,会增加开销并减少有效载荷或用户数据可用的空间。 在不知道虚拟网络基础设施的情况下,实例尝试使用默认以太网最大传输单元 (MTU) 1500 字节发送数据包。 Networking 服务通过 DHCP 自动为实例提供正确的 MTU 值。 但是,某些云镜像不使用 DHCP 或忽略 DHCP MTU 选项,需要使用元数据或脚本进行配置。
注意
选项 2 还支持将实例连接到提供者网络。
选择以下网络选项之一来配置特定于它的服务。 之后,返回此处并继续到 配置元数据代理。
配置元数据代理¶
元数据代理为实例提供配置信息,例如凭证。
编辑
/etc/neutron/metadata_agent.ini文件并完成以下操作在
[DEFAULT]部分,配置元数据主机和共享密钥[DEFAULT] # ... nova_metadata_host = controller metadata_proxy_shared_secret = METADATA_SECRET
将
METADATA_SECRET替换为元数据代理的合适密钥。
配置 Compute 服务以使用 Networking 服务¶
注意
必须安装 Nova 计算服务才能完成此步骤。 有关更多详细信息,请参阅安装指南,该指南位于 文档网站的 安装指南 部分。
编辑
/etc/nova/nova.conf文件并执行以下操作在
[neutron]部分,配置访问参数,启用元数据代理并配置密钥[neutron] # ... auth_url = http://controller:5000 auth_type = password project_domain_name = Default user_domain_name = Default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS service_metadata_proxy = true metadata_proxy_shared_secret = METADATA_SECRET
将
NEUTRON_PASS替换为您在 Identity 服务中为neutron用户选择的密码。将
METADATA_SECRET替换为您为元数据代理选择的密钥。有关完整的选项集,包括必要时覆盖服务目录端点 URL,请参阅 计算服务配置指南。
完成安装¶
Networking 服务初始化脚本期望一个符号链接
/etc/neutron/plugin.ini指向 ML2 插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini。 如果此符号链接不存在,请使用以下命令创建它# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
填充数据库
# 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 数据库填充发生在稍后。
重新启动 Compute API 服务
# systemctl restart openstack-nova-api.service
启动 Networking 服务并配置它们在系统启动时启动。
对于两种网络选项
# systemctl enable neutron-server.service \ neutron-openvswitch-agent.service neutron-dhcp-agent.service \ neutron-metadata-agent.service # systemctl start neutron-server.service \ neutron-openvswitch-agent.service neutron-dhcp-agent.service \ neutron-metadata-agent.service
对于网络选项 2,还启用并启动第 3 层服务
# systemctl enable neutron-l3-agent.service # systemctl start neutron-l3-agent.service