OpenStack 部署笔记
OpenStack 是一个开源云计算平台,核心能力覆盖计算、网络、存储、认证、镜像和编排等模块,适合用于私有云、公有云和混合云场景。本文以实验环境为例,记录使用 DevStack 快速部署 OpenStack 的过程。
如果目标是快速验证功能、学习架构或搭建测试环境,DevStack 是最合适的起点;如果是更正式的生产化部署,则更适合结合 Ansible 等工具进行标准化交付。
部署方式选择
DevStack
DevStack 适合单节点快速部署,主要面向开发、测试和实验环境。优点是安装快、门槛低,能帮助你快速理解 OpenStack 的整体架构和基础组件。
OpenStack-Ansible
OpenStack-Ansible 基于 Ansible,适合做更标准化的部署与配置管理。它能更灵活地控制各组件安装过程,也更便于后续维护和扩展。
PuppetOpenStack
Puppet 方案同样适合自动化部署,但本文不展开,仅作为可选方案记录。
使用 DevStack 部署 OpenStack
虚拟机环境准备

更换国内源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
写入以下内容:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse然后执行更新:
sudo apt-get update
sudo apt-get upgrade
安装基础依赖
先安装时间同步工具:
sudo apt-get install ntpdate同步时间并检查时钟:
sudo ntpdate cn.pool.ntp.org
date安装后续需要的基础软件包:
sudo apt-get install bridge-utils git python3-pip -y安装前后可以用以下命令确认工具是否就绪:
pip -V
git --version创建部署用户
DevStack 建议使用独立用户运行,这里创建 stack 用户并赋予免密 sudo 权限:
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack下载 DevStack
git clone https://opendev.org/openstack/devstack
cd devstack配置 local.conf
在 devstack 根目录下创建 local.conf 文件:
vim local.conf写入以下内容:
[localrc](https://docs.openstack.org/devstack/latest/configuration.html#local-conf)
ADMIN_PASSWORD=duanyd
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD开始安装
./stack.sh
安装过程可能较长。如果中途因为网络等原因失败,可以在修复问题后再次执行 ./stack.sh。
配置环境变量
创建 admin-openrc.sh 文件:
vim admin-openrc.sh写入以下内容,并根据实际环境修改密码和 IP:
export OS_USERNAME=admin
export OS_PASSWORD=duanyd
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://192.166.66.18/identity
export OS_IDENTITY_API_VERSION=3安装完成后验证
先查看各服务状态:
sudo systemctl status "devstack@*"再加载环境变量,并执行基础命令验证:
source admin-openrc.sh
nova service-list
openstack network agent list最后,通过浏览器访问对应 IP,确认 Horizon 控制台可以正常打开并登录。