7.controller部署neutron服务

news2024/10/6 18:27:52
Neutron 为整个 openstack 提供虚拟化的网络支持,主要功能包括二层交换、三层路由、防火墙、VPN ,以及负载均衡等。

neutron数据库配置

controller节点

在安装和配置 neutron 服务之前,必须创建服务对应的数据库用于存储相关数据 ,然后授权neutron 用户本地访问和远程访问两种访问权限。
mysql -u root -p123456
#创建库
CREATE DATABASE neutron;
#授权用户本地登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123';
#授权用户远程登录并设置密码(密码设置:123)
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123';

创建认账账号

切换到 admin 用户,创建 neutron 用户(密码: 123
source admin-openrc
openstack user create --domain default --password-prompt neutron

neutron用户添加到service项目中拥有管理员权限

openstack role add --project service --user neutron admin
创建一个 service 服务(供其他服务访问)名称为 neutron ,类型为network
openstack service create --name neutron --description "OpenStack Networking" network

创建neutron服务API端点

admin :管理员访问的 API 端点
internal :内部服务访问的 API 端点
public : 可以被所有项目访问的 API 端点
#创建public端点
openstack endpoint create --region RegionOne network public http://controller:9696

#创建internal端点
openstack endpoint create --region RegionOne network internal http://controller:9696

#创建admin端点
openstack endpoint create --region RegionOne network admin http://controller:9696

创建提供商网络(桥接)

根据官方文档提供的网络模式一共是两种,分别是 provider (提供商网络)与self-service (内部网络)
provider 提供商网络 : 他是通过我们最初在本机添的那块物理网卡来与虚拟机实例进行通讯,如果那块网卡的网络模式是NAT 模式了,那么我们使用provider 网络创建出来的虚拟机实例会与该网卡进行桥接,那虚拟机实例就可以连通的外网了;
self-service 自服务网络: 他说白了就是内部网络,就像 ipv4 地址中的私有网段一样,他可以创建网络但是仅限于内部的实例来进行通信是没法连接外网的;
如果你想要通过 self-service 网络来连接外网的话,那么你是需要将provider网络配置好,并且创建出一个 provider 类型的网络,然后设置为路由绑定到你创建的self-service 网络上面,这样 self-service 网络才可以访问外网。

 

 controller节点

安装相关的软件包
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
修改 neutron 配置文件: /etc/neutron/neutron.conf
#查看文件属性
ll /etc/neutron/neutron.conf
-rw-r----- 1 root neutron ... /etc/neutron/neutron.conf
#备份配置文件
cp /etc/neutron/neutron.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/neutron.conf.bak >
/etc/neutron/neutron.conf
#查看文件属性
ll /etc/neutron/neutron.conf
-rw-r----- 1 root neutron ... /etc/neutron/neutron.conf
vi /etc/neutron/neutron.conf
[DEFAULT]
#启用二层网络插件
core_plugin = ml2
#service_plugins 默认为空,如果值是 router 表示支持路由模式(三层网络)即 vxlan
service_plugins =
#指定连接的rabbitmq的用户密码:123
transport_url = rabbit://openstack:123@controller
#指定使用keystone认证
auth_strategy = keystone
#当网络接口发生变化时,通知给nova
notify_nova_on_port_status_changes = true
#当端口数据发生变化,通知给nova
notify_nova_on_port_data_changes = true
[database]
#访问neutron数据库使用的用户及密码:123

connection =
mysql+pymysql://neutron:123@controller/neutron
#配置keystone认证信息,注意将用户neutron密码改为:123
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 123
#neutron需要给nova通知计算节点网络拓扑变化,指定nova的用户信息,注意将nova用户密码改为:123
#默认配置文件没有提供该模块,在文件最后添加即可
[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 123
[oslo_concurrency]
#配置锁路径
lock_path = /var/lib/neutron/tmp

 

修改 ML2 (二层网络)插件配置文件:/etc/neutron/plugins/ml2/ml2_conf.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/ml2_conf.ini
#备份配置文件
cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/plugins/ml2/ml2_conf.ini.bak > /etc/neutron/plugins/ml2/ml2_conf.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/ml2_conf.ini
-rw-r----- 1 root neutron ... /etc/neutron/plugins/ml2/ml2_conf.ini

#修改文件内容
 

vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
#配置类型驱动:让二层网络支持桥接,支持基于vlan做子网划分
type_drivers = flat,vlan
#租户网络类型(vxlan),默认官方文档没有定义vxlan网络类型
tenant_network_types =
#
启用Linuxbridge网桥过滤
mechanism_drivers = linuxbridge
#
启用端口安全扩展驱动程序,基于iptables实现访问控制;但配置了扩展安全组会导致一些端口限制,造成一些服务无法启动
extension_drivers = port_security
[ml2_type_flat]
#将provider(提供商网络)设置为flat(桥接)类型
flat_networks = provider
[securitygroup]
#启用 ipset 增加安全组的安全性
enable_ipset = true

 

修改 linuxbridge (网桥)插件配置文件:/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/plugins/ml2/linuxbridge_agent.ini
#备份配置文件
cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$'
/etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak >
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件属性
ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini
-rw-r----- 1 root neutron  .../etc/neutron/plugins/ml2/linuxbridge_agent.ini
修改文件内容
vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
# 指定上个文件中的桥接网络provider与本机ens34物理网卡做关联 后期给虚拟机分配external(外部)网络地址,然后虚拟机就可以通过ens34上外网
桥接的物理网卡名有可能是bind0、br0等
physical_interface_mappings = provider:ens34
[vxlan]
#不启用vxlan
enable_vxlan = false
[securitygroup]
# 启用安全组并配置 Linux 桥接 iptables 防火墙驱动
enable_security_group = true

firewall_driver =
neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

 确保系统内核支持网桥过滤器

#加载modprobe br_netfilter网桥过滤器模块
modprobe br_netfilter && lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 1 br_netfilter
#修改内核配置文件/etc/sysctl.conf,开启ipv4与ipv6的网络过滤功能
vim /etc/sysctl.conf
...(写到最后)
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
#重新加载配置文件
sysctl -p

 修改dhcp_agent(为虚拟网络提供 DHCP 服务)插件配置文件:/etc/neutron/dhcp_agent.ini

#查看文件属性
ll /etc/neutron/dhcp_agent.ini
-rw-r----- 1 root neutron  ... /etc/neutron/dhcp_agent.ini
#备份配置文件
cp /etc/neutron/dhcp_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/dhcp_agent.ini.bak >/etc/neutron/dhcp_agent.ini
#查看文件属性
ll /etc/neutron/dhcp_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/dhcp_agent.ini
#修改文件内容
vi /etc/neutron/dhcp_agent.ini

[DEFAULT]
#指定默认接口驱动为linux网桥
interface_driver = linuxbridge
#指定DHCP驱动
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
#开启iso元数据
enable_isolated_metadata = true

 

 

配置元数据代理:用于配置桥接与自服务网络的通用配置参考地址:https://docs.openstack.org/neutron/train/install/controller-install-rdo.html

修改配置文件:/etc/neutron/metadata_agent.ini

#查看文件属性
ll /etc/neutron/metadata_agent.ini
-rw-r----- 1 root neutron ... /etc/neutron/metadata_agent.ini
#备份配置文件
cp /etc/neutron/metadata_agent.ini{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/neutron/metadata_agent.ini.bak >/etc/neutron/metadata_agent.ini
#查看文件属性
ll /etc/neutron/metadata_agent.ini
#修改文件内容
vi /etc/neutron/metadata_agent.ini

[DEFAULT]
#元数据代理主机
nova_metadata_host = controller
#元数据代理的共享密钥
metadata_proxy_shared_secret = METADATA_SECRET

 修改nova配置文件,用于neutron交互,配置文件:/etc/nova/nova.conf

vi /etc/nova/nova.conf
[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
#指定neutron用户密码:123
password = 123
service_metadata_proxy = true
metadata_proxy_shared_secret = METADATA_SECRET

 

创建ML2插件文件链接

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

 

 重启nova-api服务

systemctl restart openstack-nova-api.service
开启 neutron 服务、设置开机自启动
systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service
systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service
systemctl is-active neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcpagent.service \
neutron-metadata-agent.service

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多模态简介

1. 多模态定义 多模式深度学习是一个机器学习子领域,旨在训练人工智能模型来处理和发现不同类型数据(模式)之间的关系——通常是图像、视频、音频和文本。通过结合不同的模态,深度学习模型可以更普遍地理解其环境,因为…

【C++】I/O流类库

I/O 数据的输入和输出(input/output简写为I/O),对标准输入设备和标准输出设备的输入输出简称为标准I/O。对在外存磁盘上的文件输入输出简称为文件I/O。对内存中指定的字符串存储空间的输入输出简称为串I/O。 流 数据输入输出的过程&#x…

边缘智能:边缘计算和人工智能的深度融合

摘要 随着通信技术的飞速发展和移动设备使用的激增,一种全新的计算范式——边缘计算正在迅速普及。与此同时,随着深度学习的突破和硬件架构的许多改进,人工智能(AI)应用正在蓬勃发展。在网络边缘产生数十亿字节的数据,对数据处理…

也聊聊BLDC 电机的 10 大热门应用---【其利天下技术分享】

近年来,随着全球提出的低碳,高能效的概念提出,作为高效动力来源的BLDC技术,越来越受到各界的追捧。 大家都知道,BLDC的发展史也就短短几十年的时间,随着近年来,新磁性材料的运用、微电子技术和…

基于大模型的虚拟数字人__虚拟主播实例

基于大模型的虚拟数字人__虚拟主播实例 本文目录: 一、技术的背景: 二、创意名称: 三、创意背景 四、创意目标 五、创意设计 六、技术实现路径 七、完整代码实现 八、创意总结 九、人工智能虚拟人物的一些优秀代表作品及其特点 十、…

河道水位标尺识别预警 yolov7

河道水位标尺识别预警系统通过pythonyolov7网络模型技术,河道水位标尺识别预警算法对河道水位标尺进行实时监测,当河道水位出现异常情况时,河道水位标尺识别预警算法将自动发出警报提示后台管理人员及时采取措施。YOLO系列算法是一类典型的on…

【工具篇】SpringBoot基于assembly的服务化打包方案

简介 最近项目中,使用插件式开发方式,将多个Web应用打成一个FatJar程序包部署运行。但考虑到原始裸Jar包方式交付,有很多不便之处,比如启动命令过长(JVM参数配置、Spring环境配置等)、配置无法修改等问题会…

基于OpenMV的自动驾驶智能小车模拟系统

一、项目简介 基于机器视觉模块OpenMV采集车道、红绿灯、交通标志等模拟路况信息,实现一辆能车道保持、红绿灯识别、交通标志识别、安全避障以及远程WiFi控制的多功能无人驾驶小车。 赛道规格: 1、编程所需软件: OpenMV:使用Op…

cuda pyinstall cvs 使用记录

1.pip 换源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/2.安装匹配cuda的pytorch 官网:PyTorch pip3 install torch torchvision torchaudio查看能否使用cuda: import torch torch.cuda.is_available()获得以下反馈: 意思…

CSS基础学习--22 图像透明/不透明

一、透明度属性 CSS3中属性的透明度是 opacity 正常的图像 相同的图像带有透明度: img {opacity:0.4;filter:alpha(opacity40); /* IE8 及其更早版本 */ } 备注:Opacity属性值从0.0 - 1.0。值越小,使得元素更加透明。 IE8和早期版本使用滤…

【MySQL】库和表结构的增删查改

目录 一、库的操作 1、创建数据库 2、数据库所使用的编码 2.1查询编码集和校验集 2.2查看数据库的字符集和校验集 2.3创建数据库指定字符集和校验集 2.4不同的校验集所筛选的数据结果不一样 3、查看数据库 4、修改数据库 5、删除数据库 6、数据库的备份和恢复 6.1备…

【Spring MVC】获取 @RequsetBody 标识的对象,使用适配器模式增加代码可读性

1. 前言 一个技术需求引发的思考和实践: 思考 用 AOP 把校验代码 实践 用 Spring MVC 的 RequestBodyAdvice 做AOP逻辑继承 RequestBodyAdviceAdapter 实现自己的 适配器用自己的适配器让代码可读性增加熟悉 Spring MVC 、Java 反射的一些实践 本文内容 澄清一个A…

Mysql 调优

前言 硬件层面:使用固态硬盘、扩大内存、加大带宽等等 架构层面:主从复制实现读写分离【一主一 或 双主双从】 表结构层面:对表结构进行垂直拆分、水平分表、分库分表。常用的数据库中间件有:MySQL Proxy、MyCat以及ShardingSphe…

电脑C盘的清理 | 微信QQ缓存信息

记录一下我处理C盘爆满时的几个方法,基本上都是可以日常使用的。 一、磁盘清理 链接 二、查看具体哪些文件占内存 win图标右击 -----> 点击“系统(Y)” 点击查看具体是哪些文件夹哪些app占用了大量的内存,并选择删除部分…

第二章 re模块

1. re模块介绍 正则表达式 在处理字符串时,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 re 模块 Python 提供了 re 模块用于实现正则表达式的操作。在实现时&…

CTFshow-pwn入门-前置基础pwn23-pwn25

pwn23-25的题目会涉及到ret2shellcode、ret2libc等内容,本篇文章只会侧重研究这几道题目的wp,不会过多涉及到ret2shellcode、ret2libc的基本原理,等有时间再来写关于ret2libc、ret2shellcode…的相关内容。大家可以参考CTFwiki的文章去慢慢学…

FPGA_数码管显示UART串口接收的数据

实验目标:通过电脑调试助手向FPGA的UART串口接收模块发送数据,然后数据可以稳定显示在数码管上。 实验目的: 练习UART串口模块和数码管的使用。之前已经有文章详细讲解了串口和数码管的开发,故这里直接提供设计思路供大家参考。 &#xff08…

求解矩阵行列式因子、不变因子、初等因子、Jordan标准形

首先,我们先来简要了解一下行列式因子、不变因子和初等因子的概念。 下面举例说明。 例1 首先,我们要求 λ I − A λI-A λI−A 然后,我们先求行列式因子。 D 2 ( λ ) D_2(λ) D2​(λ)的求法如下: 然后,我们再求…

015、数据库管理之用户和权限

用户和权限 认证与赋权连接过程本地连接远程连接查看用户信息创建用户账号创建角色管理用户账户管理角色设置账号密码忘记root密码实验1-用户和角色实验2-授权注意事项 认证与赋权 认证:对用户进行验证 是权限控制的第一步当用户第一次连接数据库时必须进行认证如果…

【Git】TortoiseGit(小乌龟)配置SSH和使用

目录 1、TortoiseGit(小乌龟)配置SSH 1.1、右击打开Git命令窗口 1.2、设置Git的全局name和email 1.3、查看是全局名字和邮箱是否设置成功 1.4、生成 sshkey秘钥 2、TortoiseGit(小乌龟)的使用 2.1、创建本地仓库 2.2、添加…