平台即服务-Openstack 单节点部署学习

平台即服务-Openstack 单节点部署学习
28.7的博客CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤
OpenStack是一个开源的云基础设施即服务(IaaS)管理平台,主要用于构建和管理公共或私有云环境中的计算、存储和网络资源。
这个问题很基础但至关重要,理解它是掌握云基础设施的第一步。OpenStack的核心价值在于通过标准化接口,将分散的硬件资源整合为统一的云平台,实现资源的弹性调度和自动化管理。
OpenStack的核心特性
- 开源免费:基于Apache许可证,任何人都可以获取源代码,进行二次开发或部署,无需支付商业软件许可费用。
- 资源统一管理:能够集中管理服务器、存储设备和网络设备,将其虚拟化为可按需分配的计算实例、块存储、对象存储和虚拟网络。
- 模块化架构:由多个独立的服务组件构成,如负责计算的Nova、负责块存储的Cinder等,用户可根据需求选择部署部分或全部组件。
OpenStack的主要应用场景
- 企业私有云:为企业内部提供专属云环境,满足数据安全、合规性要求,同时实现IT资源的高效利用。
- 公有云服务:服务提供商基于OpenStack搭建公有云平台,为外部用户提供弹性计算、存储等按需付费的云服务。
- 混合云部署:连接企业私有云和公有云,实现资源在两者之间的灵活调度,平衡成本与安全性。
说明:因 CentOS 官网停止维护,全程使用阿里云国内镜像源以提升下载稳定性。
一、基础环境配置
OpenStack的核心工作流程是多组件协同,通过API接收用户请求,调度计算、网络、存储等资源,最终完成虚拟机创建、网络配置等任务。
这个问题覆盖了OpenStack的核心运作逻辑,理解它能帮你快速定位问题和规划资源。
一、核心组件概览
OpenStack由多个独立组件构成,各组件分工明确,通过消息队列(RabbitMQ)和数据库(MySQL)协同工作。关键组件如下:
- Nova:计算服务,负责虚拟机的创建、启动、停止和销毁。
- Neutron:网络服务,管理虚拟网络、子网、路由器和防火墙,为虚拟机提供网络连接。
- Cinder:块存储服务,提供持久化的块存储设备,类似虚拟机的“硬盘”。
- Glance:镜像服务,存储和管理虚拟机镜像,是创建虚拟机的“模板”。
- Keystone:身份认证服务,负责用户、角色和权限管理,确保API访问安全。
- Horizon:Web控制台,提供可视化界面,方便用户操作OpenStack(也可通过CLI或API直接操作)。
二、典型工作流程:创建一台虚拟机
以最常见的“创建虚拟机”为例,完整流程涉及多个组件的交互,可分为6个关键步骤:
用户发起请求
- 用户通过Horizon控制台、命令行(CLI)或API,提交创建虚拟机的请求,包括镜像选择、规格(CPU/内存)、网络和存储配置。
- 请求首先发送至Keystone进行身份验证,验证通过后获取访问其他组件的令牌(Token)。
Nova接收并调度请求
- 验证通过的请求被转发至Nova服务,Nova的API组件(nova-api)接收请求并解析参数。
- Nova的调度器(nova-scheduler)根据预设策略(如资源利用率、可用区),从多个计算节点中选择一台合适的节点来运行虚拟机。
Glance提供镜像
- 选定计算节点后,Nova会向Glance发送请求,获取用户指定的虚拟机镜像。
- Glance将镜像文件传输到目标计算节点,作为虚拟机的系统盘基础。
Neutron配置网络
- Nova同时向Neutron发送网络配置请求,要求为新虚拟机分配IP地址、配置端口和安全组。
- Neutron在指定的虚拟网络中创建端口,绑定IP地址,并确保虚拟机能够访问内部或外部网络。
Cinder分配存储(可选)
- 如果用户需要额外的持久化存储,Nova会向Cinder请求创建块存储卷(Volume)。
- Cinder创建卷后,将其挂载到目标计算节点的虚拟机上,作为额外的“硬盘”。
启动虚拟机并反馈结果
- 所有资源准备就绪后,Nova在目标计算节点上通过虚拟化技术(如KVM、Xen)启动虚拟机。
- 启动成功后,Nova将虚拟机的状态(如IP地址、运行节点)通过API或控制台反馈给用户,流程结束。
1. 更换系统基础镜像源
1 | curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo |
2. 安装常用系统工具
1 | yum -y install net-tools |
3. 关闭防火墙并禁用 SELinux
1 | systemctl stop firewalld |
4. 禁用 NetworkManager 并启用 network 服务
NetworkManager 与 OpenStack 网络组件 Neutron 存在冲突,需停用。
1 | systemctl disable NetworkManager |
5. 设置主机名与 hosts 映射
1 | hostnamectl set-hostname node-a |
6. 配置时区同步(Chrony)
步骤1:安装 Chrony 服务
1 | yum install chrony -y |
步骤2:修改 Chrony 配置文件,使用阿里云 NTP 服务器
1 | vim /etc/chrony.conf |
在文件中添加以下内容(优先使用阿里云时间源):
1 | server ntp.aliyun.com iburst |
步骤3:设置时区并重启服务
1 | timedatectl set-timezone Asia/Shanghai |
7. 更改系统语言编码
1 | vim /etc/environment |
在文件中添加以下内容(设置为 UTF-8 编码):
1 | LANG=en_US.utf-8 |
二、OpenStack 镜像源配置(关键步骤)
1. 安装 OpenStack Train 官方源
1 | yum -y install centos-release-openstack-train |
安装后会在 /etc/yum.repos.d/ 目录下生成以下 4 个关键 repo 文件:
- CentOS-OpenStack-train.repo
- CentOS-Ceph-Nautilus.repo
- CentOS-NFS-Ganesha-28.repo
- CentOS-QEMU-EV.repo
2. 修改 4 个 repo 文件为阿里云源
⚠️ 核心注意事项:
- 删除
baseurl行前的#号(启用该源)- 将
baseurl中的官网地址改为mirrors.aliyun.com(国内源)- 在
mirrorlist行前添加#号(注释掉默认镜像列表)
分别编辑以下 4 个文件,按上述规则修改:
1 | vim /etc/yum.repos.d/CentOS-OpenStack-train.repo |
1 | vim /etc/yum.repos.d/CentOS-Ceph-Nautilus.repo |
1 | vim /etc/yum.repos.d/CentOS-NFS-Ganesha-28.repo |
1 | vim /etc/yum.repos.d/CentOS-QEMU-EV.repo |
3. 更新 yum 缓存,应用新源
1 | yum makecache |
执行成功后,会显示各源的缓存生成进度(参考下图):
三、通过 Packstack 安装 OpenStack
1. 安装 Packstack 安装器
1 | # Packstack 是 OpenStack 官方推荐的一键安装工具 |
安装成功界面参考:
2. 一键安装 OpenStack(All-in-One 模式)
1 | packstack --allinone |
四、获取登录信息并访问 Horizon 控制台
1. 查看管理员与演示账号的登录信息
1 | cat /root/keystonerc_admin |
凭证文件内容参考:
你的OpenStack已通过Packstack成功安装,后续可按照日志提示进行命令行操作和Dashboard访问。
一、关键信息提示
- 网络后端限制:当前使用OVN Neutron后端,不支持VPNaaS(虚拟专用网即服务)和FWaaS(防火墙即服务),租户网络封装方式为Geneve。
- 时间同步风险:时间同步安装被跳过,服务器实例时间不同步可能导致部分OpenStack组件出现问题,需后续手动处理。
二、生成的重要文件
安装过程中生成了4类核心文件,路径和用途如下:
- Answer文件:
/root/packstack-answers-20251029-212647.txt,记录本次安装的配置参数,后续重新安装或修改配置可参考。 - 认证文件:
/root/keystonerc_admin,包含OpenStack管理员(admin)的认证信息,是使用命令行工具的关键。 - 安装日志:
/var/tmp/packstack/20251029-212646-hIaQeO/openstack-setup.log,若后续出现问题,可通过该日志排查安装阶段的错误。 - Puppet清单:
/var/tmp/packstack/20251029-212646-hIaQeO/manifests,存储Packstack自动生成的Puppet配置文件,用于追溯安装时的资源配置。
2. 访问 Horizon Web 界面
- 打开浏览器,输入服务器 IP(如
http://192.168.87.133/dashboard)。 - 使用
keystonerc_admin中的用户名(默认admin)和密码登录。 - 登录成功后的控制台界面参考:
五,创建虚拟机测试
上传镜像到glance中,同时也可以点击启动按钮创建实例
输入名称以及描述
选择镜像作为源
选择一个合适的配额,点击创建实例
等待存储块创建完毕就可以打开虚拟机
这时候与正常创建虚拟机无异











