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

CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤

OpenStack是一个开源的云基础设施即服务(IaaS)管理平台,主要用于构建和管理公共或私有云环境中的计算、存储和网络资源。

这个问题很基础但至关重要,理解它是掌握云基础设施的第一步。OpenStack的核心价值在于通过标准化接口,将分散的硬件资源整合为统一的云平台,实现资源的弹性调度和自动化管理。

OpenStack的核心特性

  1. 开源免费:基于Apache许可证,任何人都可以获取源代码,进行二次开发或部署,无需支付商业软件许可费用。
  2. 资源统一管理:能够集中管理服务器、存储设备和网络设备,将其虚拟化为可按需分配的计算实例、块存储、对象存储和虚拟网络。
  3. 模块化架构:由多个独立的服务组件构成,如负责计算的Nova、负责块存储的Cinder等,用户可根据需求选择部署部分或全部组件。

OpenStack的主要应用场景

  • 企业私有云:为企业内部提供专属云环境,满足数据安全、合规性要求,同时实现IT资源的高效利用。
  • 公有云服务:服务提供商基于OpenStack搭建公有云平台,为外部用户提供弹性计算、存储等按需付费的云服务。
  • 混合云部署:连接企业私有云和公有云,实现资源在两者之间的灵活调度,平衡成本与安全性。

说明:因 CentOS 官网停止维护,全程使用阿里云国内镜像源以提升下载稳定性。

一、基础环境配置

OpenStack的核心工作流程是多组件协同,通过API接收用户请求,调度计算、网络、存储等资源,最终完成虚拟机创建、网络配置等任务。

这个问题覆盖了OpenStack的核心运作逻辑,理解它能帮你快速定位问题和规划资源。

一、核心组件概览

OpenStack由多个独立组件构成,各组件分工明确,通过消息队列(RabbitMQ)和数据库(MySQL)协同工作。关键组件如下:

  • Nova:计算服务,负责虚拟机的创建、启动、停止和销毁。
  • Neutron:网络服务,管理虚拟网络、子网、路由器和防火墙,为虚拟机提供网络连接。
  • Cinder:块存储服务,提供持久化的块存储设备,类似虚拟机的“硬盘”。
  • Glance:镜像服务,存储和管理虚拟机镜像,是创建虚拟机的“模板”。
  • Keystone:身份认证服务,负责用户、角色和权限管理,确保API访问安全。
  • Horizon:Web控制台,提供可视化界面,方便用户操作OpenStack(也可通过CLI或API直接操作)。

二、典型工作流程:创建一台虚拟机

以最常见的“创建虚拟机”为例,完整流程涉及多个组件的交互,可分为6个关键步骤:

  1. 用户发起请求

    • 用户通过Horizon控制台、命令行(CLI)或API,提交创建虚拟机的请求,包括镜像选择、规格(CPU/内存)、网络和存储配置。
    • 请求首先发送至Keystone进行身份验证,验证通过后获取访问其他组件的令牌(Token)。
  2. Nova接收并调度请求

    • 验证通过的请求被转发至Nova服务,Nova的API组件(nova-api)接收请求并解析参数。
    • Nova的调度器(nova-scheduler)根据预设策略(如资源利用率、可用区),从多个计算节点中选择一台合适的节点来运行虚拟机。
  3. Glance提供镜像

    • 选定计算节点后,Nova会向Glance发送请求,获取用户指定的虚拟机镜像。
    • Glance将镜像文件传输到目标计算节点,作为虚拟机的系统盘基础。
  4. Neutron配置网络

    • Nova同时向Neutron发送网络配置请求,要求为新虚拟机分配IP地址、配置端口和安全组。
    • Neutron在指定的虚拟网络中创建端口,绑定IP地址,并确保虚拟机能够访问内部或外部网络。
  5. Cinder分配存储(可选)

    • 如果用户需要额外的持久化存储,Nova会向Cinder请求创建块存储卷(Volume)。
    • Cinder创建卷后,将其挂载到目标计算节点的虚拟机上,作为额外的“硬盘”。
  6. 启动虚拟机并反馈结果

    • 所有资源准备就绪后,Nova在目标计算节点上通过虚拟化技术(如KVM、Xen)启动虚拟机。
    • 启动成功后,Nova将虚拟机的状态(如IP地址、运行节点)通过API或控制台反馈给用户,流程结束。

1. 更换系统基础镜像源

1
2
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

2. 安装常用系统工具

1
2
3
yum -y install net-tools
yum -y install wget
yum -y install vim

3. 关闭防火墙并禁用 SELinux

1
2
3
4
5
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config
systemctl status firewalld

4. 禁用 NetworkManager 并启用 network 服务

NetworkManager 与 OpenStack 网络组件 Neutron 存在冲突,需停用。

1
2
3
4
systemctl disable NetworkManager 
systemctl stop NetworkManager
systemctl enable network
systemctl start network

5. 设置主机名与 hosts 映射

1
2
3
4
hostnamectl set-hostname node-a
echo "192.168.87.133 node-a node-a.localdomain" >> /etc/hosts
hostname
reboot

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
2
3
timedatectl set-timezone Asia/Shanghai
systemctl restart chronyd
systemctl enable chronyd

7. 更改系统语言编码

1
vim /etc/environment

在文件中添加以下内容(设置为 UTF-8 编码):

1
2
LANG=en_US.utf-8
LC_ALL=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 文件为阿里云源

⚠️ 核心注意事项:

  1. 删除 baseurl 行前的 # 号(启用该源)
  2. baseurl 中的官网地址改为 mirrors.aliyun.com(国内源)
  3. 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

执行成功后,会显示各源的缓存生成进度(参考下图):
yum makecache 执行结果


三、通过 Packstack 安装 OpenStack

1. 安装 Packstack 安装器

1
2
# Packstack 是 OpenStack 官方推荐的一键安装工具
yum -y install openstack-packstack

安装成功界面参考:
Packstack 安装结果

2. 一键安装 OpenStack(All-in-One 模式)

1
2
packstack --allinone
nova-manage --version

四、获取登录信息并访问 Horizon 控制台

1. 查看管理员与演示账号的登录信息

1
2
cat /root/keystonerc_admin
cat /root/keystonerc_demo

凭证文件内容参考:
keystonerc_admin 内容

你的OpenStack已通过Packstack成功安装,后续可按照日志提示进行命令行操作和Dashboard访问。

一、关键信息提示

  1. 网络后端限制:当前使用OVN Neutron后端,不支持VPNaaS(虚拟专用网即服务)和FWaaS(防火墙即服务),租户网络封装方式为Geneve。
  2. 时间同步风险:时间同步安装被跳过,服务器实例时间不同步可能导致部分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 界面

  1. 打开浏览器,输入服务器 IP(如 http://192.168.87.133/dashboard)。
  2. 使用 keystonerc_admin 中的用户名(默认 admin)和密码登录。
  3. 登录成功后的控制台界面参考:
    Horizon 项目视图
    Horizon 控制台首页

五,创建虚拟机测试

上传镜像到glance中,同时也可以点击启动按钮创建实例

输入名称以及描述

选择镜像作为源

选择一个合适的配额,点击创建实例

等待存储块创建完毕就可以打开虚拟机

这时候与正常创建虚拟机无异