如何安装,配置和使用Neutron的各个组件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何安装,配置和使用Neutron的各个组件相关的知识,希望对你有一定的参考价值。
安装指令取决于发行版本,更具体来讲,取决于您选择的包管理实用程序。在许多情况下,必须声明存储库。所以,举例而言,如果您使用的是 Zypper,那么您要用 zypper ar 向 libzypp 公开:# zypper ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Grizzly/SLE_11_SP3/Cloud:OpenStack:Grizzly.repo
出于演示之目的,以下是 Ubuntu、Red Hat (Red Had Enterprise Linux、CentOS、Fedora)和 openSUSE 的主要命令:
Ubuntu:安装 neutron-server 和访问该 API 的客户端: $sudo apt-get install neutron-server python-neutronclient
安装插件:
$sudo apt-get install neutron-plugin-<plugin-name>
例如:
$sudo apt-get install neutron-plugin-openvswitch-agent Red Hat:类似于 Ubuntu,您必须同时安装 Neutron 服务器和插件 — 例如: $sudo yum install openstack-neutron$sudo yum install openstack-neutron-openvswitch openSUSE:使用以下命令: $sudo zypper install openstack-neutron$sudo zypper install openstack-neutron-openvswitch-agent
配置
大部分插件都需要一个数据库。OpenStack Networking 的 Fedora 包包含服务器设置实用程序脚本,负责数据库的完整安装和配置:
$sudo neutron-server-setup --plugin openvswitch
但也可以手动配置这些数据库。例如,在 Ubuntu 上,您可使用以下命令安装数据库:
$sudo apt-get install mysql-server python-mysqldb python-sqlalchemy
如果已经为其他 OpenStack 服务安装了一个数据库,那么您只需要创建一个 Neutron 数据库:
$ mysql -u <user> -p <pass> -e "create database neutron"
必须在插件的配置文件中指定该数据库。为此,在 /etc/neutron/plugins/plugin-name 中找到插件配置文件(例如 /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini),然后设置连接字符串:
sql_connection = mysql://<user>:<password>@localhost/neutron?charset=utf8
使用场景
一个典型的 OpenStack Networking 设置可能很复杂,包含多达 4 个不同的物理网络。使用一个管理网络在 OpenStack 组件之间执行内部通信。一个数据网络处理实例之间的数据通信。API 网络向租户公开了所有 OpenStack API。此外,通常需要一个外部网络来授予访问 VM 的 Internet 的权限。
在这些物理网络之上,可通过许多方式配置租户需要的虚拟网络。最简单的场景是单个平面网络。也可以有多个平面网络、每个租户的私有网络,并提供商和每租户路由器的组合来管理网络之间的流量。 参考技术A 可以开发一个不包含任何特定于网络的功能的、可弹性扩展的工作负载管理系统。当然,计算节点需要在彼此之间建立连接,并能访问外部世界,但它也可以利用现
有的网络基础架构来分配 IP
地址和在节点之间传输数据。在多租户环境中,这样一种方法的最大问题是,已有的网络管理系统无法高效、安全地在用户之间隔离流量 —
这同时也是构建公共和私有云的组织面临的一个巨大问题。
OpenStack 解决此问题的一种方式是,构建一个详尽的网络管理堆栈,用它来处理所有网络相关请求。此方法面临的挑战是,每个实现都可能拥有一组独特的需求,包括与其他各种各样的工具和软件的集成。
OpenStack 因此采取了创建抽象层的方法,这个抽象层被称为 OpenStack
Networking,可容纳大量处理与其他网络服务的集成的插件。它为云租户提供了一个应用编程接口
(API),租户可使用它配置灵活的策略和构建复杂的网络拓扑结构 — 例如用它来支持多级 Web 应用程序。
OpenStack Networking 支持使用第三方编写插件来引入高级网络功能,比如 L2-in-L3 隧道和端到端服务质量支持。它们还可以创建网络服务,比如负载平衡、虚拟专用网或插入 OpenStack 租户网络中的防火墙。
在过去,OpenStack 的网络组件位于 OpenStack Nova (Compute) 项目中。其中大部分组件被拆分为一个包含
Folsom 版的单独项目。这个新项目最初称为 Quantum,但后来重命名为 Neutron,以避免与公司 Quantum
Corporation 的任何商标混淆。所以,如果看到 OpenStack Networking 参考资料中同时出现了名称
Nova、Quantum 和 Neutron,不要感到奇怪。
OpenStack---M版---双节点搭建---Neutron安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓
》》》》》》传送门
1.创建网络服务数据库
2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限
3.创建服务证书,neutron用户
4.创建网络服务API端点:
5.Controller节点安装并配置网络服务组件
6.网络服务初始化
7.同步数据库
8.Controller节点重启计算API服务
9.启动网络服务并设置开机启动
10.Compute节点安装并配置neutron服务
11.compute节点重启服务并设置开机自启
12.验证(Controller节点)
1.创建网络服务数据库
#mysql -uroot -p000000
>create database neutron;
> grant all privileges on neutron.* to 'neutron'@'localhost' identified by '000000';
> grant all privileges on neutron.* to 'neutron'@'%' identified by '000000';
2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限
#. /root/admin-openrc
3.创建服务证书,neutron用户
#openstack user create --domain default --password 000000 neutron
#openstack role add --project service --user neutron admin
#openstack service create --name neutron --description "OpenStack Networking" network
4.创建网络服务API端点:
#openstack endpoint create --region RegionOne network public http://controller:9696
#openstack endpoint create --region RegionOne network internal http://controller:9696
#openstack endpoint create --region RegionOne network admin http://controller:9696
5.Controller节点安装并配置网络服务组件
#yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
1.编辑配置文件 /etc/neutron/neutron.conf
#vi /etc/neutron/neutron.conf
在 [database] 部分,配置数据库访问:
connection = mysql+pymysql://neutron:000000@controller/neutron
在``[DEFAULT]``部分,添加如下内容
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True
rpc_backend = rabbit
auth_strategy = keystone
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True
在[oslo_messaging_rabbit]部分,配置 “RabbitMQ” 消息队列的连接:
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 000000
在[keystone_authtoken]部分,配置认证服务访问
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000
在[nova]部分,配置网络服务来通知计算节点的网络拓扑变化:
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 000000
在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/neutron/tmp
2.编辑/etc/neutron/plugins/ml2/ml2_conf.ini
文件,配置启用flat,VLAN,GRE,LOCAL以及VXLAN网络:
#vi /etc/neutron/plugins/ml2/ml2_conf.ini
在[ml2]下添加
type_drivers = flat,vlan,vxlan,gre,local
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
在 [ml2_type_flat] 部分,配置公共虚拟网络为flat网络
flat_networks = provider
在 [ml2_type_vxlan] 部分,为私有网络配置VXLAN网络识别的网络范围:
vni_ranges = 1:1000
在 [securitygroup] 部分,启用 ipset 增加安全组规则的高效性:
enable_ipset = True
3.配置linuxbridge代理,编辑文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
在 [linux_bridge] 部分,将公共虚拟网络和公共物理网络接口对应起来:
physical_interface_mappings = provider:eth1
#注意,此处的eth1为基础环境配置中的200的网段 也就是 192.168.200.0/24
在 [vxlan] 部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
enable_vxlan = True
local_ip = 192.168.100.10 #这里的IP地址是controller的管理网络
l2_population = True
在 [securitygroup] 部分,启用安全组并配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
4.配置layer-3代理,编辑文件/etc/neutron/l3_agent.ini
#vi /etc/neutron/l3_agent.ini
在[DEFAULT]下添加
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
external_network_bridge =
5.配置DHCP代理编辑/etc/neutron/dhcp_agent.ini
文件
#vi /etc/neutron/dhcp_agent.ini
在[DEFAULT]下添加
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True
6.编辑/etc/neutron/metadata_agent.ini
文件
#vi /etc/neutron/metadata_agent.ini
在``[DEFAULT]`` 部分,配置元数据主机以及共享密码:
nova_metadata_ip = controller
metadata_proxy_shared_secret = 000000
7.编辑/etc/nova/nova.conf
文件
#vi /etc/nova/nova.conf
在``[neutron]``部分,配置访问参数,启用元数据代理并设置密码:
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000
service_metadata_proxy = True
metadata_proxy_shared_secret = 000000
6.网络服务初始化
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
7.同步数据库
# 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
8.Controller节点重启计算API服务
# systemctl restart openstack-nova-api.service
9.启动网络服务并设置开机启动
systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-l3-agent.service
10.Compute节点安装并配置neutron服务
# yum -y install openstack-neutron-linuxbridge ebtables ipset
1.编辑/etc/neutron/neutron.conf
文件
#vi /etc/neutron/neutron.conf
在 “[DEFAULT]” 下添加
rpc_backend = rabbit
auth_strategy = keystone
在[oslo_messaging_rabbit]下添加
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 000000
在[keystone_authtoken]下添加
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000
在 [oslo_concurrency] 部分,配置锁路径:
lock_path = /var/lib/neutron/tmp
2.编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件
#vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
在 [linux_bridge] 部分,将公共虚拟网络和公共物理网络接口对应起来
physical_interface_mappings = provider:eth1
在 [vxlan] 部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
enable_vxlan = True
local_ip = 192.168.100.20
l2_population = True
在 [securitygroup] 部分,启用安全组并配置 Linuxbridge iptables firewall driver:
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
3.编辑/etc/nova/nova.conf
文件并完成下面的操作
#vi /etc/nova/nova.conf
在[neutron]部分添加
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000
11.compute节点重启服务并设置开机自启
# systemctl restart openstack-nova-compute.service neutron-linuxbridge-agent.service
# systemctl enable neutron-linuxbridge-agent.service
12.验证(Controller节点)
#. /root/admin-openrc
#neutron ext-list
#neutron agent-list
以上是关于如何安装,配置和使用Neutron的各个组件的主要内容,如果未能解决你的问题,请参考以下文章
Openstack 实战讲解之-----08-计算节点neutron配置