新闻详情

新闻详情

首页 / 资讯中心 / 详情

OpenStack Havana 单节点部署实战:一台机器跑通全组件

发布时间:2026/9/30 4:45:36来源:尧图网络
OpenStack Havana 单节点部署实战:一台机器跑通全组件
简介这份《Openstack安装部署手册》面向云计算运维人员、OpenStack初学者及需要搭建私有云环境的技术人员以Havana版本为基准系统梳理从环境准备到核心组件落地的完整部署路径帮助读者解决多组件协同配置中易踩坑、难串联的问题。资源包共1个docx文件约519KB内容以章节化文档形式组织涵盖网卡配置、主机名修改、MySQL数据库安装、OpenStack单元包与Messaging Server部署以及Keystone认证服务的数据库连接、授权令牌、密钥证书、用户租客与roles定义等关键环节。手册还依次展开Glance镜像服务、Nova计算、Swift对象存储、Cinder块存储与Neutron网络服务的安装配置说明目录结构清晰便于按组件检索与对照实操。目前已有369人学习适合作为搭建IaaS平台时的案头参考与排错依据。1. 单节点 Havana 部署一台机器怎么把 OpenStack 全组件跑起来手头只有一台物理机却要完整跑通 OpenStack 的认证、镜像、计算、网络和 Dashboard这事在 Havana 版本上是能做的但前提是你得接受一个现实Controller 和 Compute 必须挤在同一台机器上。这份《Openstack 安装部署手册.docx》记录的就是这样一个场景——单主机、单网卡、6GB 内存、RedHat 6.3主机名 controllerIP 192.168.205.177。它解决的不是“生产级高可用”问题而是“我只有一台机器怎么把 Keystone、Glance、Nova、Dashboard 串起来跑通”的问题。适合正在学 OpenStack 组件交互、需要一套可复现最小环境的人。下面按手册里的真实步骤拆参数怎么改、哪里容易翻车一并说清。2. 环境准备与基础依赖网卡、主机名、MySQL 和消息队列2.1 网卡与主机名的硬性约束Havana 对主机名解析非常敏感。Keystone 的 endpoint 里写的是http://controller:5000/v2.0如果/etc/hosts里没有把controller解析到本机 IP后面所有服务间的认证调用都会超时。手册里的做法是先改网卡再改主机名顺序不能反。# 编辑网卡配置静态 IP 是后续所有 endpoint 的基础 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 TYPEEthernet BOOTPROTOstatic IPADDR192.168.205.177 NETMASK255.255.255.0 DEFROUTEyes ONBOOTyes改完后重启网络并且关掉 NetworkManager。RedHat 6.3 上 NetworkManager 和 network 服务同时跑会互相覆盖配置这是血泪经验。service network restart service NetworkManager stop chkconfig NetworkManager off chkconfig network on接着改主机名和 hostsvi /etc/sysconfig/network HOSTNAMEcontroller vi /etc/hosts 127.0.0.1 localhost 192.168.205.177 controller参数说明IPADDR必须和后面 Keystone endpoint 里用的地址一致DEFROUTEyes保证默认路由走这块网卡。hosts 里controller那行不能少否则keystone user-list这类命令会直接报连接拒绝。2.2 MySQL 与 Messaging Server 的安装要点OpenStack 各组件共用 MySQL 存数据Havana 时代消息队列用的是 Qpid。手册里先装 MySQL 再装 Qpid顺序有讲究——openstack-db --init依赖 MySQL 已运行。yum install mysql mysql-server MySQL-python vi /etc/my.cnf [mysqld] bind-address 192.168.205.177 service mysqld start chkconfig mysqld on mysql_install_db mysql_secure_installationbind-address写成具体 IP 而不是0.0.0.0是为了避免 MySQL 监听所有接口带来的安全隐患。mysql_secure_installation会删掉匿名用户这一步不做的话后面 Keystone 建库可能因为权限混乱失败。Qpid 的配置更简单但authno这个参数在单机测试环境可以接受生产环境必须开认证yum install qpid-cpp-server memcached vi /etc/qpidd.conf authno service qpidd start chkconfig qpidd onmemcached 是 Keystone 的 token 缓存后端不装的话 Keystone 启动会报 warning虽然不一定立刻挂但后续认证性能会受影响。2.3 安装 OpenStack 包与源配置手册里用的是 Fedora 的 Havana 源和 EPEL 源。这两个 rpm 装完后会自动配好 yum 源省去手写 repo 文件的麻烦。# 下载并安装源配置包 rpm -ivh http://repos.fedorapeople.org/repos/openstack/openstack-havana/rdo-release-havana-6.noarch.rpm rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install openstack-utils yum install openstack-selinux yum upgrade rebootopenstack-utils提供了openstack-config和openstack-db两个关键命令后面配置各组件全靠它们。openstack-selinux是 Havana 的 SELinux 策略包不装的话 Glance 和 Nova 启动时会被 SELinux 拦截。手册里特别提醒“外网环境十分不稳定安装可能会经常失败”失败后要清干净失败的包再重试否则残留的半装状态会让后续组件报出莫名其妙的依赖错误。3. Keystone 认证服务令牌、租户与 endpoint 的创建顺序3.1 数据库连接与授权令牌的生成Keystone 是 OpenStack 的认证入口所有其他组件都要在 Keystone 里注册。手册里的第一步是配数据库连接然后初始化库。yum install openstack-keystone python-keystoneclient # 配置数据库连接 openstack-config --set /etc/keystone/keystone.conf \ sql connection mysql://keystone:KEYSTONE_DBPASScontroller/keystone # 初始化 Keystone 数据库 openstack-db --init --service keystone --password KEYSTONE_DBPASSopenstack-db --init会自动创建数据库、用户并导入表结构。KEYSTONE_DBPASS要换成实际密码后面 Glance、Nova 建库时同理。授权令牌用 openssl 随机生成这是临时管理令牌用于在 Keystone 还没配好用户体系时执行管理命令ADMIN_TOKEN$(openssl rand -hex 10) echo $ADMIN_TOKEN openstack-config --set /etc/keystone/keystone.conf DEFAULT \ admin_token $ADMIN_TOKEN生成后把令牌值记下来后面导出环境变量要用。接着生成 PKI 证书并启动服务keystone-manage pki_setup --keystone-user keystone --keystone-group keystone chown -R keystone:keystone /etc/keystone/* /var/log/keystone/keystone.log service openstack-keystone start chkconfig openstack-keystone onpki_setup生成签名证书Havana 的 Keystone 用 PKI 令牌替代了早期的 UUID 令牌。如果这步报权限错误检查/etc/keystone目录属主是不是 keystone。3.2 租户、用户与角色的创建流程导出环境变量后开始建租户。手册里建了 admin 和 service 两个租户这是 Havana 的标准做法——admin 给管理员用service 给各组件服务账号用。export OS_SERVICE_TOKENADMIN_TOKEN export OS_SERVICE_ENDPOINThttp://controller:35357/v2.0 # 创建 admin 租户 keystone tenant-create --nameadmin --descriptionAdmin Tenant # 创建 service 租户 keystone tenant-create --nameservice --descriptionService Tenant手册里有一句 PS“这里很有可能会报错提示租户无法创建重启 keystone 会解决问题”。这是 Havana 的已知问题——Keystone 首次启动时数据库连接池可能没完全就绪重启一次就好。创建 admin 用户并赋予 admin 角色keystone user-create --nameadmin --passADMIN_PASS \ --emailadminexample.com keystone user-role-add --useradmin --tenantadmin --roleadminADMIN_PASS换成实际密码。注意--email参数在 Havana 里是必填的不写会报参数缺失。3.3 服务注册与 endpoint 定义Keystone 自身也要注册为服务否则其他组件无法通过 Keystone 发现认证接口。keystone service-create --namekeystone --typeidentity \ --descriptionKeystone Identity Service keystone endpoint-create \ --service-id7711a2a72fb34caea36782f7cd669e03 \ --publicurlhttp://controller:5000/v2.0 \ --internalurlhttp://controller:5000/v2.0 \ --adminurlhttp://controller:35357/v2.0--service-id是上一条命令返回的 ID每次创建都不一样不能照抄。publicurl和internalurl用 5000 端口adminurl用 35357 端口这是 Havana 的固定约定。三个 URL 里的controller必须和 hosts 里解析的一致。最后写一个环境变量文件方便后续 sourcevi admin-openrc.sh export OS_USERNAMEadmin export OS_PASSWORDADMIN_PASS export OS_TENANT_NAMEadmin export OS_AUTH_URLhttp://controller:35357/v2.0source 后执行keystone user-list能看到 admin 用户就说明 Keystone 配置正确。报错的话查/var/log/keystone/keystone.log常见问题是数据库连接串里的密码写错或 hosts 解析失败。4. Glance 与 Nova镜像服务和计算服务的配置差异4.1 Glance 的双配置文件与 paste.ini 凭证Glance 有两个服务进程glance-api 和 glance-registry各自有独立的配置文件和 paste.ini。手册里先配数据库连接再建库、建用户、配认证。yum install openstack-glance # 配置 API 和 Registry 的数据库连接 openstack-config --set /etc/glance/glance-api.conf \ DEFAULT sql_connection mysql://glance:PASSWORDcontroller/glance openstack-config --set /etc/glance/glance-registry.conf \ DEFAULT sql_connection mysql://glance:PASSWORDcontroller/glance # 初始化 Glance 数据库 openstack-db --init --service glance --password PASSWORD在 Keystone 里创建 glance 用户并赋予 admin 角色keystone user-create --nameglance --passPASSWORD --emailglanceexample.com keystone user-role-add --userglance --tenantservice --roleadmin配置认证信息时admin_tenant_name写serviceadmin_user写glance这是服务账号的标准归属openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ auth_uri http://controller:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ auth_host controller openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_tenant_name service openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_user glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken \ admin_password PASSWORD openstack-config --set /etc/glance/glance-api.conf paste_deploy \ flavor keystoneglance-registry.conf 做同样配置。然后复制 paste.ini 模板并填入凭证cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini两个 paste.ini 里都要加[filter:authtoken]段内容与上面 keystone_authtoken 一致。这一步容易漏——只配了 conf 没配 paste.iniGlance 启动不报错但认证会失败。在 Keystone 注册 Glance 服务并创建 endpointkeystone service-create --nameglance --typeimage \ --descriptionGlance Image Service keystone endpoint-create \ --service-idglance-service-id \ --publicurlhttp://controller:9292 \ --internalurlhttp://controller:9292 \ --adminurlhttp://controller:9292Glance 三个 URL 都用 9292 端口。启动服务后执行glance image-list返回空列表就说明正常。4.2 Nova 的多服务启动与网络组件Nova 在单节点上要同时跑 nova-api、nova-compute、nova-network、nova-scheduler 等多个服务。手册里先配数据库连接和 Keystone 认证再逐个启动。# 配置 Nova 数据库连接 openstack-config --set /etc/nova/nova.conf \ DEFAULT sql_connection mysql://nova:PASSWORDcontroller/nova openstack-db --init --service nova --password PASSWORD # 在 Keystone 创建 nova 用户 keystone user-create --namenova --passPASSWORD --emailnovaexample.com keystone user-role-add --usernova --tenantservice --roleadminNova 的认证配置和 Glance 类似但多了一个auth_strategy参数openstack-config --set /etc/nova/nova.conf DEFAULT \ auth_strategy keystone openstack-config --set /etc/nova/nova.conf keystone_authtoken \ auth_uri http://controller:5000 openstack-config --set /etc/nova/nova.conf keystone_authtoken \ auth_host controller openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_tenant_name service openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_user nova openstack-config --set /etc/nova/nova.conf keystone_authtoken \ admin_password PASSWORD注册 Nova 服务并创建 endpointkeystone service-create --namenova --typecompute \ --descriptionNova Compute Service keystone endpoint-create \ --service-idnova-service-id \ --publicurlhttp://controller:8774/v2/%\(tenant_id\)s \ --internalurlhttp://controller:8774/v2/%\(tenant_id\)s \ --adminurlhttp://controller:8774/v2/%\(tenant_id\)sURL 里的%\(tenant_id\)s是 Havana 的固定格式不能改。启动 Nova 各服务for svc in api compute network scheduler conductor cert; do service openstack-nova-$svc start chkconfig openstack-nova-$svc on done单节点环境必须启动 nova-compute 和 nova-network否则虚拟机无法创建。手册里特别说明“主机要即当管理节点又提供计算服务”所以这两个服务不能省。4.3 Dashboard 与网络配置Dashboard 的配置主要是改缓存后端和 Keystone 地址yum install openstack-dashboard vi /etc/openstack-dashboard/local_settings CACHES { default: { BACKEND: django.core.cache.backends.memcached.MemcachedCache, LOCATION: 127.0.0.1:11211, } } OPENSTACK_HOST controller启动 httpd 后访问http://192.168.205.177/dashboard能用 admin 登录就说明 Dashboard 通了。Nova network 还需要创建 VLAN 和开放安全规则nova-manage network create --labelprivate \ --fixed_range_v410.0.0.0/24 --bridgebr100 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 nova secgroup-add-rule default tcp 22 22 0.0.0.0/0fixed_range_v4是虚拟机内网网段不能和物理机网段重叠。安全规则不开的话虚拟机起来后 ping 不通也 SSH 不上。5. 避坑与排查Havana 单节点部署的五个高频翻车点5.1 租户创建报错但重启后正常现象执行keystone tenant-create时提示无法创建租户日志里没有明显错误。原因是 Keystone 首次启动时数据库连接池初始化不完全属于 Havana 的已知问题。解决方法是service openstack-keystone restart重启后重新执行创建命令即可。如果重启后仍然报错检查/etc/keystone/keystone.conf里的sql connection密码是否和openstack-db --init时设的一致。5.2 Glance 启动成功但 image-list 报 401现象service openstack-glance-api start返回成功但glance image-list提示未授权。原因是只配了glance-api.conf和glance-registry.conf漏配了glance-api-paste.ini和glance-registry-paste.ini里的[filter:authtoken]段。解决方法是检查两个 paste.ini 文件确保admin_user、admin_password、admin_tenant_name三个参数都存在且正确。5.3 Nova 服务启动后虚拟机创建失败现象nova list正常但nova boot创建虚拟机时一直卡在 scheduling 状态。原因是 nova-compute 没有正确连接到消息队列或者 nova-network 没启动。解决方法是先确认service qpidd status是 running再检查/etc/nova/nova.conf里的rpc_backend是否配成qpid。单节点环境还要确认 nova-compute 和 nova-network 两个服务都启动了。5.4 Dashboard 登录后报 500 错误现象Dashboard 能打开登录页输入 admin 账号后报服务器内部错误。原因是 memcached 没启动或local_settings里的OPENSTACK_HOST写错。解决方法是service memcached start并确认OPENSTACK_HOST controller与 hosts 解析一致。如果还报错查/var/log/httpd/error_log常见的是 Django 的 session 后端连接 memcached 超时。5.5 外网源不稳定导致包安装不全现象yum install openstack-nova中途失败重试后提示依赖冲突。原因是 Havana 的 Fedora 源在国内访问不稳定包下载不完整就中断了。解决方法是先yum clean all再rpm -qa | grep openstack检查有没有半装的包有的话rpm -e卸掉再重装。手册里那句“安装失败后清除安装失败的包”就是这个意思残留的半装状态比重新装更麻烦。6. 镜像制作与 flavor 创建从 qcow2 到可启动实例6.1 用 virt-manager 制作 Glance 镜像手册里制作镜像的流程是先在 virt-manager 里装一个虚拟机改好配置后再转成 Glance 能识别的格式。这一步的坑在于虚拟机内部的配置——如果不改上传后的镜像启动会卡在 cloud-init 或网络配置阶段。# 在虚拟机内执行以下修改 # 1. 清空网络规则避免 MAC 地址绑定 rm -f /etc/udev/rules.d/70-persistent-net.rules # 2. 修改网卡为 DHCP vi /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTOdhcp ONBOOTyes # 3. 关闭 SELinux vi /etc/selinux/config SELINUXdisabled # 4. 清空日志和历史 yum clean all rm -f /var/log/*.log history -c关机后把 qcow2 文件传到 Controller 节点用 glance 命令上传glance image-create --namerhel6.3 \ --disk-formatqcow2 \ --container-formatbare \ --is-publictrue \ --file/root/rhel6.3.qcow2--disk-format写qcow2--container-format写bare这是 KVM 镜像的标准格式。--is-publictrue让所有租户都能用这个镜像。上传后用glance image-list确认状态是active。6.2 flavor 创建与虚拟机启动验证flavor 定义虚拟机的 CPU、内存和磁盘规格。手册里先查看默认 flavor再创建自定义的# 查看现有 flavor nova flavor-list # 创建 2GB 内存、20GB 磁盘、2 vCPU 的 flavor nova flavor-create m1.small 6 2048 20 2nova flavor-create的参数顺序是名称、ID、内存 MB、磁盘 GB、vCPU 数。ID 不能和现有 flavor 重复用nova flavor-list查一下已用的 ID。创建虚拟机nova boot --flavor m1.small \ --image rhel6.3 \ --key_name mykey \ --security_group default \ test-vm--key_name需要提前用nova keypair-add创建。启动后用nova list看状态从BUILD变成ACTIVE就说明成功了。如果一直卡在BUILD查/var/log/nova/nova-compute.log常见问题是镜像格式不对或网络桥接没配好。6.3 验证与日常排查习惯整套环境跑通后我习惯按这个顺序做一次全链路验证先keystone user-list确认认证再glance image-list确认镜像服务然后nova service-list看各计算服务状态最后nova boot起一台虚拟机并用nova console-log看启动日志。这套流程走一遍哪个组件有问题一目了然。从那以后我每次部署完 OpenStack不管多急都会强制走一遍这个验证链路确认每个组件的 endpoint 和认证都通了再交付。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

RT-Thread设备驱动框架:以先楫hwtimer为例拆解定时器驱动 2026/9/30 5:37:53

RT-Thread设备驱动框架:以先楫hwtimer为例拆解定时器驱动

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
HCIP-Storage H13-624练习题解析:RAID计算与存储运维实战 2026/9/30 5:37:46

HCIP-Storage H13-624练习题解析:RAID计算与存储运维实战

简介:本资源为HCIP-Storage(存储)H13-624练习题文档,面向备考华为存储认证的考生及希望系统梳理存储知识点的运维工程师。内容围绕华为融合存储与超融合方案展开,涵盖并行快速数据重建、RAID2.0中SAS硬盘默认256MB分片…

阅读更多 →
阿里云SSL证书Nginx配置实战:从申请到生产级HTTPS加固 2026/9/30 5:37:46

阿里云SSL证书Nginx配置实战:从申请到生产级HTTPS加固

1. 这不是“买个证书就完事”的活儿:阿里云SSL证书的真实工作流你搜“阿里云SSL证书”,页面上跳出来的全是“免费申请”“一键部署”“3分钟搞定HTTPS”——我干这行十年,亲手配过两千多个站点的HTTPS,必须说句实在话:…

阅读更多 →
Linux主机安全基线检查实操指南:从命令到脚本 2026/9/30 5:37:46

Linux主机安全基线检查实操指南:从命令到脚本

简介:这份《Linux操作系统基线检查指导书1.0版》面向主机安全运维人员、等保测评从业者及信息安全初学者,聚焦Linux服务器安全合规自查场景,帮助读者系统掌握基线核查的检查项、命令与预期结果。内容围绕身份鉴别、访问控制、安全审计等核心类…

阅读更多 →
文旅数字化平台开发:景区预约与票务系统设计思路 2026/9/30 5:37:46

文旅数字化平台开发:景区预约与票务系统设计思路

文旅数字化平台开发:景区预约与票务系统设计思路 随着智慧文旅、数字景区建设全面落地,传统线下售票、无规则入园模式已无法适配景区客流管控、精细化运营需求。景区分时预约电子票务系统作为文旅数字化的核心基础模块,承担着客流分流、门票交…

阅读更多 →
Word空白页删除不了?三步定位分节符、表格、页眉真实成因 2026/9/30 5:37:46

Word空白页删除不了?三步定位分节符、表格、页眉真实成因

1. 空白页不是“看不见的敌人”,而是Word里有迹可循的“显性残留”你有没有过这种经历:文档明明写完了,最后一页却固执地挂着一张纯白纸——没有文字、没有图片、没有分页符标记,连“显示/隐藏编辑标记”都翻遍了,它还…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉