OpenStack 02:使用 DevStack 单节点一体化部署
DevStack 自动化部署
DevStack 用户配置
# 创建DevStack用户
sudo useradd -s /bin/bash -d /opt/stack -m stack
# 修改文件夹权限
sudo chmod +x /opt/stack
# 设置用户 SUDO 免密
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
# 切换到用户
sudo -u stack -i
获取 DevStack 源码
# 下载 DevStack
git clone https://opendev.org/openstack/devstack
Cloning into 'devstack'...
remote: Enumerating objects: 51974, done.
remote: Counting objects: 100% (31551/31551), done.
remote: Compressing objects: 100% (10716/10716), done.
remote: Total 51974 (delta 30780), reused 20835 (delta 20835), pack-reused 20423
Receiving objects: 100% (51974/51974), 9.75 MiB | 602.00 KiB/s, done.
Resolving deltas: 100% (36900/36900), done.
- stack.sh:Devstack自动化部署工具的主执行脚本。判断是否存在localrc配置文件,如果不存在,则会进入交互模式,需要输入一些参数,如数据库的密码、Rabbit MQ的密码等
- openrc:环境变量脚本。OpenStack命令在执行时需要依赖环境变量,如OS_USERNAME等
- unstack.sh:卸载所有已经启动的服务
- lib/:在这个目录下存放了每个服务的自动化安装脚本,如Nova、Swift等,包含了手动安装时执行的所有命令
创建 DevStack 配置文件
# 切换到 devstack
cd /opt/stack/devstack
# 创建配置文件 local.conf
vim local.conf
[[local|localrc]]
ADMIN_PASSWORD=Admin1234
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
安装 OpenStack
# 开始安装 OpenStack./stack.sh
脚本执行任务包括:
- 下载并安装 OpenStack 运行所需系统软件,如Python组件、MySQL、rabbitmq-server等
- 获取OpenStack各项目源码,如Nova、Keystone、Glance、Horizon等
- 安装OpenStack源码所依赖的Python库和框架。
- 安装OpenStack各组件
- 启动各项服务
安装完成后显示
=========================
DevStack Component Timing(times are in seconds)
=========================
wait_for_service 27
async_wait 369
osc 435
apt-get 21
test_with_retry 0
dbsync 5
pip_install 887
apt-get-update 16
run_process 108
git_timed 767
-------------------------
Unaccounted time 513
=========================
Total runtime 3148=================Async summary
=================Time spent in the background minus waits: 759 secElapsed time: 3148 secTime if we did everything serially: 3907 secSpeedup: 1.24111This is your host IP address: 192.168.71.121
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.71.121/dashboard
Keystone is serving at http://192.168.71.121/identity/
The default users are: admin and demo
The password: Admin1234Services are running under systemd unit files.
For more information see:
https://docs.openstack.org/devstack/latest/systemd.htmlDevStack Version: 2025.2
Change: 34689f587966f9fd512a03c85762bd79dd4a4e9d Configure nova 'service' role in tempest 2025-08-27 02:40:21 +0000
OS Version: Ubuntu 24.04 noble2025-08-31 06:46:12.816 | stack.sh completed in 3148 seconds.
控制面板
介绍
OpenStack的控制面板(Dashboard)来自 Horizon 项目。
Horizon 项目:
- 提供模块化的基于Web的图形界面,用于访问、控制计算、存储和网络资源
- 采用Django框架及许多流行的前端技术,如Bootstrap、jQuery等
核心价值:
- 核心支持——支持所有的OpenStack项目
- 可扩展性——每个开发者都能增加组件
- 易于管理——架构和代码易于管理,浏览方便
- 视图一致——各组件的界面和交互模式保持一致
- 可兼容性——API向后兼容
- 易于使用——用户界面友好
Horizon 体系结构
部署
Devstack默认安装Horizon
配置
openstack_dashboard/settings.py文件是Horizon的主要配置文件,主要有4个方面的内容:
- 常用配置:其中包括视觉设置,如模式背景样式、错误上报网址和主题配置;影响每项服务的设置,如API请求的页面大小,主要包括以下两个方面的内容。
- 各服务相关的配置:Horizon调用的许多服务(如Nova和Neutron)都不会通过API暴露其功能和能力,因此Horizon允许Operator在Horizon中进行配置,以启用或禁用各服务的各种选项。
- Django框架配置:包括所有Django App的通用设置中Horizon更改的配置。其他默认的配置可以参考Django官网的配置文档。
- 其他配置:前3条不包含的其他配置。
登录
Devstack 成功安装后,打开 http://<你的服务器IP地址>/dashboard
用户名:admin
密码:Devstack安装时配置的密码