发布时间:2026/8/29 5:11:55
【Openstack部署-2】 Networking 服务之前的修改的配置不要删除配置私有网络控制节点[rootcontroller ~]# vim /etc/neutron/neutron.conf[database] ... connection mysqlpymysql://neutron:NEUTRON_DBPASScontroller/neutron使用你设置的数据库密码替换 NEUTRON_DBPASS[DEFAULT] ... core_plugin ml2 service_plugins router allow_overlapping_ips True[DEFAULT] ... rpc_backend rabbit [oslo_messaging_rabbit] ... rabbit_host controller rabbit_userid openstack rabbit_password RABBIT_PASS用你在RabbitMQ中为openstack选择的密码替换 “RABBIT_PASS”[DEFAULT] ... auth_strategy keystone [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 NEUTRON_PASS将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码[DEFAULT] ... notify_nova_on_port_status_changes True notify_nova_on_port_data_changes True [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 NOVA_PASS使用你在身份认证服务中设置的nova 用户的密码替换NOVA_PASS[oslo_concurrency] ... lock_path /var/lib/neutron/tmp[rootcontroller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini[ml2] ... type_drivers flat,vlan,vxlan[ml2] ... tenant_network_types vxlan[ml2] ... mechanism_drivers linuxbridge,l2population[ml2] ... extension_drivers port_security[ml2_type_flat] ... flat_networks provider[ml2_type_vxlan] ... vni_ranges 1:1000[securitygroup] ... enable_ipset True[rootcontroller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge] physical_interface_mappings provider:PROVIDER_INTERFACE_NAME将PUBLIC_INTERFACE_NAME 替换为底层的物理公共网络接口[vxlan] enable_vxlan True local_ip OVERLAY_INTERFACE_IP_ADDRESS l2_population True将OVERLAY_INTERFACE_IP_ADDRESS 替换为处理覆盖网络的底层物理网络接口的IP地址[securitygroup] ... enable_security_group True firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver[rootcontroller ~]# vim /etc/neutron/l3_agent.ini[DEFAULT] ... interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver external_network_bridge [rootcontroller ~]# vim /etc/neutron/dhcp_agent.ini[DEFAULT] ... interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver dhcp_driver neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata True修改完配置后重启对应服务[rootcontroller ~]# systemctl restart neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service计算节点[rootcompute1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini[linux_bridge] physical_interface_mappings provider:PROVIDER_INTERFACE_NAME将PUBLIC_INTERFACE_NAME 替换为底层的物理公共网络接口[vxlan] enable_vxlan True local_ip OVERLAY_INTERFACE_IP_ADDRESS l2_population True将OVERLAY_INTERFACE_IP_ADDRESS 替换为处理覆盖网络的底层物理网络接口的IP地址[securitygroup] ... enable_security_group True firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver[rootcompute1 ~]# systemctl restart neutron-linuxbridge-agent.serviceDashBoard支持3层网络服务[rootcontroller ~]# vim /etc/openstack-dashboard/local_settings创建网络admin用户demo用户创建云主机demo用户按照同样方式再创建一台云主机创建路由demo用户绑定浮动ip块存储服务安装并配置控制节点mysql -u root -pCREATE DATABASE cinder;GRANT ALL PRIVILEGES ON cinder.* TO cinderlocalhost \ IDENTIFIED BY CINDER_DBPASS; GRANT ALL PRIVILEGES ON cinder.* TO cinder% \ IDENTIFIED BY CINDER_DBPASS;用合适的密码替换 CINDER_DBPASS$ . admin-openrc$ openstack user create --domain default --password-prompt cinder$ openstack role add --project service --user cinder adminopenstack service create --name cinder \ --description OpenStack Block Storage volumeopenstack service create --name cinderv2 \ --description OpenStack Block Storage volumev2openstack endpoint create --region RegionOne \ volume public http://controller:8776/v1/%\(tenant_id\)sopenstack endpoint create --region RegionOne \ volume internal http://controller:8776/v1/%\(tenant_id\)sopenstack endpoint create --region RegionOne \ volume admin http://controller:8776/v1/%\(tenant_id\)sopenstack endpoint create --region RegionOne \ volumev2 public http://controller:8776/v2/%\(tenant_id\)sopenstack endpoint create --region RegionOne \ volumev2 internal http://controller:8776/v2/%\(tenant_id\)sopenstack endpoint create --region RegionOne \ volumev2 admin http://controller:8776/v2/%\(tenant_id\)syum install openstack-cinder[rootcontroller ~]# vim /etc/cinder/cinder.conf[database] ... connection mysqlpymysql://cinder:CINDER_DBPASScontroller/cinder用你为块设备存储数据库选择的密码替换 CINDER_DBPASS。[DEFAULT] ... rpc_backend rabbit [oslo_messaging_rabbit] ... rabbit_host controller rabbit_userid openstack rabbit_password RABBIT_PASS用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。[DEFAULT] ... auth_strategy keystone [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 cinder password CINDER_PASS将 CINDER_PASS 替换为你在认证服务中为 cinder 用户选择的密码[DEFAULT] ... my_ip 192.168.247.171[oslo_concurrency] ... lock_path /var/lib/cinder/tmp# su -s /bin/sh -c cinder-manage db sync cinder[rootcontroller ~]# vim /etc/nova/nova.conf[cinder] os_region_name RegionOne# systemctl restart openstack-nova-api.service# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service # systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service安装并配置一个存储节点[rootblock1 ~]# yum install lvm2[rootblock1 ~]# systemctl enable --now lvm2-lvmetad.service添加一块虚拟磁盘[rootblock1 ~]# pvcreate /dev/sdb[rootblock1 ~]# vgcreate cinder-volumes /dev/sdb[rootblock1 ~]# vim /etc/lvm/lvm.conf[rootblock1 ~]# yum install openstack-cinder targetcli python-keystone[rootblock1 ~]# vim /etc/cinder/cinder.conf[database] ... connection mysqlpymysql://cinder:CINDER_DBPASScontroller/cinder用你为块设备存储数据库选择的密码替换 CINDER_DBPASS。[DEFAULT] ... rpc_backend rabbit [oslo_messaging_rabbit] ... rabbit_host controller rabbit_userid openstack rabbit_password RABBIT_PASS用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”[DEFAULT] ... auth_strategy keystone [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 cinder password CINDER_PASS将 CINDER_PASS 替换为你在认证服务中为 cinder 用户选择的密码[DEFAULT] ... my_ip MANAGEMENT_INTERFACE_IP_ADDRESS将其中的MANAGEMENT_INTERFACE_IP_ADDRESS替换为存储节点上的管理网络接口的IP 地址[lvm] ... volume_driver cinder.volume.drivers.lvm.LVMVolumeDriver volume_group cinder-volumes iscsi_protocol iscsi iscsi_helper lioadm[DEFAULT] ... enabled_backends lvm[DEFAULT] ... glance_api_servers http://controller:9292[oslo_concurrency] ... lock_path /var/lib/cinder/tmp# systemctl enable openstack-cinder-volume.service target.service # systemctl start openstack-cinder-volume.service target.service验证操作[rootcontroller ~]# . admin-openrc[rootcontroller ~]# cinder service-list创建云硬盘[rootblock1 ~]# lvs创建CentOS镜像配置yum源[rootdemo ~]# cd /etc/yum.repos.d/[rootdemo yum.repos.d]# rm -f *.repo[rootdemo yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo关闭防火墙和SElinux[rootdemo yum.repos.d]# systemctl disable --now firewalld[rootdemo yum.repos.d]# sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config关闭NetworkManager[rootdemo ~]# systemctl disable --now NetworkManager配置时间同步[rootdemo yum.repos.d]# yum install -y chrony[rootdemo yum.repos.d]# vim /etc/chrony.conf开启串口终端Serial Console重定向[rootdemo ~]# vim /etc/default/grub[rootdemo ~]# grub2-mkconfig -o /boot/grub2/grub.cfg修改网卡名称[rootdemo yum.repos.d]# vim /boot/grub2/grub.cfg[rootdemo yum.repos.d]# vim /etc/sysconfig/network-scripts/ifcfg-eth0TYPEEthernet BOOTPROTOdhcp DEVICEeth0 ONBOOTyes重启使一些配置生效[rootdemo yum.repos.d]# reboot删除全部 SSH 主机密钥文件[rootdemo ~]# cd /etc/sshd[rootdemo ssh]# rm -f ssh_host_*关机并创建镜像[rootdemo ssh]# poweroff另开一台虚拟机操作将 VMware 导出的OVA 格式虚拟机镜像转换为适合KVM / QEMU平台使用的qcow2 格式镜像[rootdocker1 ~]# mkdir /opt/v2v[rootdocker1 ~]# yum install -y virt-v2v[rootdocker1 ~]# systemctl start libvirtd[rootdocker1 ~]# virt-v2v -i ova demo.ova -o local -of qcow2 -os /opt/v2v/使用virt-sparsify瘦身压缩[rootdocker1 v2v]# virt-sparsify --compress demo-sda demo.qcow2在openstack上创建镜像admin用户新建云主机类型admin用户新建云主机demo用户创建成功后绑定浮动ip

相关新闻

2026/8/29 5:11:55

从零构建高性能地球物理计算平台:CUDA+MPI实现RTM与FWI

简介:本资源是一套面向地球物理勘探与高性能计算领域的开源代码实践包,聚焦有限差分正演建模、逆时偏移(RTM)、全波形反演(FWI)、光线追踪等核心算法的C/CUDA实现,适用于科研人员、地质建模工程…

2026/8/29 5:06:54

技术团队如何工程化准备年度名册调研申报材料

每年临近年底,各类年度商业调研和名册评选就会密集启动。刚看到“WISE2026 商业之王系列年度名册调研”正式启动的消息,很多科技公司市场部、CTO、技术负责人的群里已经开始讨论要不要参与。大多数人的第一反应,通常是“这跟我们技术团队有什…

2026/8/29 5:06:54

PCF8591 ADDA转换芯片:从原理到实战的I2C接口模数转换应用

1. 从模拟到数字的桥梁:为什么ADDA转换无处不在如果你玩过Arduino或者树莓派,肯定遇到过这样的场景:想用单片机读取一个电位器的旋转角度,或者根据环境光线强度自动调节LED灯的亮度。这时候,你手头的传感器&#xff08…

2026/8/29 5:26:56

C++17 if constexpr与初始化if:编译期与运行时分支的艺术

1. 从两个“if”说起:编译期与运行时的抉择艺术如果你写过一段时间的C,对if语句肯定再熟悉不过了。它就像程序里的交通警察,根据条件决定代码的走向。但C17引入的if constexpr和C17/20中增强的if初始化语句,让这个“警察”拥有了在…

2026/8/29 5:26:56

KMP算法从原理到实战:关键next数组解析与线性匹配优化

这个系列走到第四篇,我挑了三块在面试里出场率极高、又经常被混淆的硬骨头:Manacher算法、BFPRT算法、KMP算法。题目里标了“上”,所以这一篇的主角是KMP——理由是它最基础、最经典,同时也是后两个算法思想的前置。Manacher和BFP…

2026/8/29 5:26:56

阿里Java实习面试全流程复盘:从简历到HR面,附高频考题

金三银四这个时间点,对2021届的实习生来说就是一场硬仗。尤其是阿里这种级别的公司,春招实习面试不只是筛人,更像是一次高强度的技术体检。我把自己当时备战阿里Java后台开发实习的完整经历,包括每一轮的面试题、答题思路、以及踩…

2026/8/29 5:26:56

学习FastAPI,端口的“路由参数”传递

1,路径参数在查询定义路径时传入,再传入给函数中如访问http://127.0.0.1:8000/itme/18# 路径参数 # 定义路由时,直接在路径中编写变量 app.get("/item/{sid}") async def read_item(sid: int):return {"sid":sid}# 如果没…

2026/8/29 5:26:56

D14 | Agent 是什么?ReAct 模式让你看懂所有 Agent 框架

文章目录 D14 | Agent 是什么?ReAct 模式让你看懂所有 Agent 框架 写在前面 一、Agent 的本质 1.1 一个生活类比 1.2 Agent 的 3 个核心组件 1.3 Agent vs LLM vs RAG 二、ReAct 模式:所有 Agent 的母模式 2.1 ReAct 是什么 2.2 ReAct 流程图 2.3 ReAct 的 Prompt 模板 2.4 3…

2026/8/29 5:21:56

ROS2集成海康工业相机:从SDK封装到高性能视觉节点开发

简介:本资源是一份面向ROS2初学者与工业视觉开发者的技术实践指南,聚焦海康HIKROBOT工业相机在ROS2环境下的驱动开发与集成应用。它系统解决了图像采集、参数动态配置、设备状态管理及图像流发布等核心问题,适用于机器人视觉感知、智能质检、…

2026/8/28 16:16:17

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 16:16:21

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 16:16:22

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/29 0:01:10

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:01:10

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:01:10

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…