openstack运维-部署neutron组件[t版](代码片段)

serendipity_cat serendipity_cat     2022-11-23     403

关键词:

OpenStack 运维 - 部署Neutron组件

一、Neutron 概述

Neutron是 OpenStack项目中负责提供网络服务的组件,它基于软件定义网络的思想,实现了网络虚拟化下的资源管理。Neutron 的设计目标是实现“网络即服务(Networking as a Service),在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术

二、创建数据库neutron,并进行授权

CT控制节点

mysql -u root -p

grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'NEUTRON_DBPASS';
grant all privileges on neutron.* to 'neutron'@'%' identified by 'NE
UTRON_DBPASS';

flush privileges;
exit
创建neutron用户,用于在keystone做认证
openstack user create --domain default --password NEUTRON_PASS neutron

将neutron用户添加到service项目中拥有管理员权限
openstack role add --project service --user neutron admin
创建network服务,服务类型为network
openstack service create --name neutron --description "OpenStack Networking" network

注册API到neutron服务,给neutron服务关联端口,即添加endpoint
openstack endpoint create --region RegionOne network public http://ct:9696
openstack endpoint create --region RegionOne network internal http://ct:9696	
openstack endpoint create --region RegionOne network admin http://ct:9696

安装提供者网络(桥接)
ebtables包是用来管理iptables规则的
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables conntrack-tools
更改主配置文件
#修改主配置文件neutron.conf
cp -a /etc/neutron/neutron.conf,.bak
grep -Ev '^$|#' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf

openstack-config --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:NEUTRON_DBPASS@ct/neutron
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router
openstack-config --set  /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips true
openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes true
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes true
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password NEUTRON_PASS
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
openstack-config --set  /etc/neutron/neutron.conf nova  auth_url http://ct:5000
openstack-config --set  /etc/neutron/neutron.conf nova  auth_type password
openstack-config --set  /etc/neutron/neutron.conf nova  project_domain_name default
openstack-config --set  /etc/neutron/neutron.conf nova  user_domain_name default
openstack-config --set  /etc/neutron/neutron.conf nova  region_name RegionOne
openstack-config --set  /etc/neutron/neutron.conf nova  project_name service
openstack-config --set  /etc/neutron/neutron.conf nova  username nova
openstack-config --set  /etc/neutron/neutron.conf nova  password NOVA_PASS

查看配置文件
[root@ct neutron]# cat neutron.conf
[DEFAULT]
core_plugin = ml2						#启用二层网络插件
service_plugins = router					#启用三层网络插件
allow_overlapping_ips = true
transport_url = rabbit://openstack:RABBIT_PASS@ct		#配置rabbitmq连接
auth_strategy = keystone					#认证的方式:keystone
notify_nova_on_port_status_changes = true			#当网络接口发生变化时,通知给计算节点	
notify_nova_on_port_data_changes = true			#当端口数据发生变化,通知计算节点
[cors]
[database]						#配置数据库连接
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@ct/neutron
[keystone_authtoken]					#配置keystone认证信息
www_authenticate_uri = http://ct:5000
auth_url = http://ct:5000
memcached_servers = ct:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS
[oslo_concurrency]						#配置锁路径
lock_path = /var/lib/neutron/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[privsep]
[ssl]
[nova]							#neutron需要给nova返回数据
auth_url = http://ct:5000					#到keystone认证nova
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova						#通过nova的用户名和密码到keystone验证nova的token
password = NOVA_PASS
修改 ML2 plugin 配置文件 ml2_conf.ini
cp -a /etc/neutron/plugins/ml2/ml2_conf.ini,.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/ml2_conf.ini.bak > /etc/neutron/plugins/ml2/ml2_conf.ini

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers  flat,vlan,vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers  linuxbridge,l2population
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers  port_security
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks  provider
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset  true
修改 linux bridge network provider 配置文件

#Linux网桥
cp -a /etc/neutron/plugins/ml2/linuxbridge_agent.ini,.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings  provider:eth1		###eth1网卡名称
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan  true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip 192.168.1.100	##控制节点IP地址	
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group  true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver  neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

#查看配置文件
[DEFAULT]

[linux_bridge]
physical_interface_mappings = provider:eth1			#指定上个文件中的桥接网络名称,与eth0物理网卡做关联,后期给虚拟机分配external网络,就可以通过eth0上外网;物理网卡有可能是bind0、br0等

[vxlan]							#启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population
enable_vxlan = true						#允许用户创建自定义网络(3层网络)
local_ip = 192.168.1.100
l2_population = true

[securitygroup]						#启用安全组并配置 Linux 桥接 iptables 防火墙驱动
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
修改内核参数
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
modprobe br_netfilter	#表示向内核加入参数
sysctl -p
配置Linuxbridge接口驱动和外部网络网桥
cp -a /etc/neutron/l3_agent.ini,.bak
grep -Ev '^$|#' /etc/neutron/l3_agent.ini.bak > /etc/neutron/l3_agent.ini
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT interface_driver linuxbridge
修改dhcp_agent 配置文件
cp -a /etc/neutron/dhcp_agent.ini,.bak
grep -Ev '^$|#' /etc/neutron/dhcp_agent.ini.bak > /etc/neutron/dhcp_agent.ini 
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver linuxbridge
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata true
配置元数据代理、用于配置桥接与自服务网络的通用配置
cp -a /etc/neutron/metadata_agent.ini,.bak
grep -Ev '^$|#' /etc/neutron/metadata_agent.ini.bak > /etc/neutron/metadata_agent.ini
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_host ct
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret METADATA_SECRET
修改nova配置文件
openstack-config --set /etc/nova/nova.conf neutron url http://ct:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://ct:5000
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password NEUTRON_PASS
openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy true
openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret METADATA_SECRET
创建ML2插件文件符号连接
网络服务初始化脚本需要/etc/neutron/plugin.ini指向ML2插件配置文件的符号链接
ln -s /etc/neutron/plugins/ml2/ml2_conf.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

重启计算节点nova-api服务
systemctl restart openstack-nova-api.service

systemctl enable neutron-server.service \\
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \\
neutron-metadata-agent.service
systemctl start neutron-server.service \\
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \\
neutron-metadata-agent.service

netstat -anutp |grep 9696

systemctl enable neutron-l3-agent.service && systemctl restart neutron-l3-agent.service
'//因为配置了第三层L3网络服务、所以需要启动第三层服务'

systemctl status neutron-l3-agent.service

三、计算节点 C1/C2

yum -y install openstack-neutron-linuxbridge ebtables ipset conntrack-tools
修改neutron.conf文件
cp -a /etc/neutron/neutron.conf,.bak
grep -Ev '^$|#' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf
openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri http://ct:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://ct:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password NEUTRON_PASS
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp


【查看配置文件】

[root@c1 neutron]# cat neutron.conf

[DEFAULT]					#neutron的server端与agent端通讯也是通过rabbitmq进行通讯的
transport_url = rabbit://openstack:RABBIT_PASS@ct
auth_strategy = keystone				#认证策略:keystone
[cors]
[database]

[keystone_authtoken]				#指定keystone认证的信息
www_authenticate_uri = http://ct:5000
auth_url = http://ct:5000
memcached_servers = ct:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = NEUTRON_PASS

[oslo_concurrency]					#配置锁路径(管理线程库)
lock_path = /var/lib/neutron/tmp

[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[privsep]
[ssl]
配置Linux网桥代理
cp -a /etc/neutron/plugins/ml2/linuxbridge_agent.ini,.bak
grep -Ev '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings  provider:eth1
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan  true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip 192.168.1.200
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group  true
openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver  neutron.agent.linux.iptables_firewall.IptablesFirewallDriver


[root@c1 ml2]# cat linuxbridge_agent.ini
[DEFAULT]
[linux_bridge]
physical_interface_mappings = provider:eth1
● 直接将node节点external网络绑定在当前节点的指定的物理网卡,不需要node节点配置网络名称,node节点只需要接收controller节点指令即可;controller节点上配置的external网络名称是针对整个openstack环境生效的,所以指定external网络绑定在当前node节点的eth0物理网卡上(也可能是bind0或br0)

[vxlan]
enable_vxlan = true							#开启Vxlan网络
local_ip = 192.168.1.200
l2_population = true						#L2 Population 是用来提高 VXLAN 网络扩展能力的组件

[securitygroup]
enable_security_group = true						#开启安全组
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver	#指定安全组驱动文件
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
'//允许虚拟机的数据通过物理机出去'

modprobe br_netfilter
'//用于向内核中加载模块或者从内核中移除模块'
'//modprobe -r 表示移除'

sysctl -p
【修改nova.conf配置文件的neutron字段-C1、C2节点】
openstack-config --set /etc/nova/nova.conf neutron auth_url http://ct:5000
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password NEUTRON_PASS

#以下为修改字段内容
[neutron]
auth_url = http://ct:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
重新启动计算节点上的Nova服
systemctl restart openstack-nova-compute.service 
启动网桥代理并设置开机自启
systemctl enable neutron-linuxbridge-agent.service
systemctl start neutron-linuxbridge-agent.service

四、CT 验证服务组件

openstack extension list --network
'//列出加载的扩展来验证neutron-server是否成功运行'

openstack network agent list
'//在控制节点上,列出所有的代理'

openstack的部署t版——neutron组件(代码片段)

OpenStack的部署(六)——Neutron组件一、CT控制节点1、创建数据库neutron,并进行授权2、创建用户、服务并赋权3、注册API到neutron服务,给neutron服务关联端口,即添加endpoint4、安装提供者网络(桥接)5、重启相关... 查看详情

openstack运维-部署dashboard组件[t版](代码片段)

OpenStack运维-部署Dashboard组件一、安装dashboard和apache二、修改dashboard配置文件三、开始验证一、安装dashboard和apacheyum-yinstallopenstack-dashboardhttpd二、修改dashboard配置文件cd/etc/openstack-dashboard/#修改的内容如下:#修改local_setting 查看详情

openstack运维-部署glance组件[t版](代码片段)

OpenStack运维-部署Glance组件一、创建数据库实例和数据库用户二、创建用户修改配置文件三、创建镜像服务API四、安装OpenStack-glance五、修改glance配置文件六、初始化glance数据库①开启服务②查看端口③赋予glance服务的读写权限七... 查看详情

openstack运维-部署placement组件[t版](代码片段)

OpenStack运维-部署Placement组件一、创建数据库实例和数据库用户二、创建Placement服务用户和API的endpoint①创建placement用户②让placement用户对service项目拥有admin权限③创建一个placement服务,服务类型为placement④注册API端口到placeme... 查看详情

openstack运维-部署cinder组件[t版](代码片段)

一、创建数据库实例和角色mysql-uroot-pCREATEDATABASEcinder;GRANTALLPRIVILEGESONcinder.*TO'cinder'@'localhost'IDENTIFIEDBY'CINDER_DBPASS';GRANTALLPRIVILEGESONcinder.*TO'cinder'&# 查看详情

openstack运维-部署nova组件[t版](代码片段)

OpenStack运维-部署Nova组件一、创建Nova数据库并执行授权操作二、管理Nova用户及服务①创建Nova用户②创建Nova服务③Nova关联endpoint端点④安装Nova组件⑤修改配置文件⑥初始化数据库⑦启动Nova服务并查看端口三、计算节点配置Nova服... 查看详情

openstack运维-部署keystone组件[t版](代码片段)

OpenStack运维-Keystone组件一、创建数据库实例与用户二、安装配置Keystone&Apache[mod_wsgi]①安装服务及传参②初始化认证服务数据库及fernet密钥库③配置bootstrap身份认证服务④配置ApacheHTTP服务器⑤创建配置文件⑥配置管理员账户的... 查看详情

传统公司部署openstack(t版)简易介绍——neutron模块部署(代码片段)

传统公司部署OpenStack(t版)简易介绍(六)——neutron模块部署一、ct控制节点创建数据库neutron,并进行授权二、c1、c2节点(以c1为例)三、ct节点验证总结一、ct控制节点创建数据库neutron,并进行... 查看详情

openstack--t版部署(内容较多,需要细品(❁´◡`❁))!(代码片段)

OpenStack部署OpenStack环境部署设备准备部署OpenStack依赖环境控制节点配置MariaDB部署RabbitMQ部署memcachedKeystone组件部署Glance组件部署OpenStack-Nova模块部署OpenStack-Placement模块部署在ct节点安装部署Nova组件在计算节点配置nova服务Neutron组... 查看详情

openstack--t版部署(内容较多,需要细品(❁´◡`❁))!(代码片段)

OpenStack部署OpenStack环境部署设备准备部署OpenStack依赖环境控制节点配置MariaDB部署RabbitMQ部署memcachedKeystone组件部署Glance组件部署OpenStack-Nova模块部署OpenStack-Placement模块部署在ct节点安装部署Nova组件在计算节点配置nova服务Neutron组... 查看详情

openstack运维-部署placement组件[t版](代码片段)

OpenStack运维-部署Placement组件一、创建数据库实例和数据库用户二、创建Placement服务用户和API的endpoint①创建placement用户②让placement用户对service项目拥有admin权限③创建一个placement服务,服务类型为placement④注册API端口到placeme... 查看详情

openstack部署neutron(代码片段)

controller   1.创建数据库并设置权限  mysql-uroot-p0330  CREATEDATABASEneutron;  GRANTALLPRIVILEGESONneutron.*TO‘neutron‘@‘localhost‘\IDENTIFIEDBY‘NEUTRON_DBPASS‘;   GRANTALLPRIVILEGESONneutron.*T 查看详情

openstack运维-部署nova组件[t版](代码片段)

OpenStack运维-部署Nova组件一、创建Nova数据库并执行授权操作二、管理Nova用户及服务①创建Nova用户②创建Nova服务③Nova关联endpoint端点④安装Nova组件⑤修改配置文件⑥初始化数据库⑦启动Nova服务并查看端口三、计算节点配置Nova服... 查看详情

openstack运维-部署cinder组件[t版](代码片段)

...建用户、修改配置文件创建cinder用户,密码设置为CINDER_PASSopenstackusercreate--domaindefault--passwordCINDER_PASScinder把cinder用户添加到service服务中,并授予admin权限openstackroleadd--projectservice--usercinderadmincinder有v2和v3两个并存版本的API,... 查看详情

openstack部署

...制节点(controller)-增加networkingNetworking又叫做Neutron,是Openstack必不可少的组件,它其实是网络虚拟化的实现工具,可以让我们模拟出路由器、交换机、网卡等网络设备。关于Neutron的电子书 https://yeasy.gitbooks.io/openstack_understan... 查看详情

openstack运维-环境部署|报错排查[t版](代码片段)

OpenStack运维-环境部署一、环境配置二、基础配置1.配置国内YUM源2.修改主机名及关闭防火墙3.安装相关环境依赖包4.调优NAT网卡及配置DNS和映射5.配置免交护6.配置时间同步所有节点安装控制节点ct计算节点c1/2三、系统环境配置1.安... 查看详情

openstack网络服务neutron计算节点部署

...组件,安装的服务器是192.168.137.121、安装软件包yuminstall-yopenstack-neutron-linuxbridgeebtablesipset2、配置文件neutron.conf因为neutron控制节点跟计算节点配置几乎一样,直接复制控制节点的文件到计算节点,将不同的部分进行修改。scp/etc/ne... 查看详情

openstack网络服务neutron介绍和控制节点部署

Neutron介绍neutron是openstack重要组件之一,在以前是时候没有neutron项目。早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个neutron。OpenStackNetworking网络:在实际的物理环境下,我们使用交换机或者集线器... 查看详情