在虚拟机Ubuntu系统中安装DevStack需先完成环境准备:更新系统、安装依赖(如git、python3等),并配置网络确保虚拟机可联网,接着克隆DevStack仓库,编辑local.conf文件设置管理员密码、网络插件及服务启用项,执行stack.sh脚本自动化安装,过程中需监控日志排查依赖或权限问题,安装完成后,通过访问Horizon界面(默认端口80)及运行openstack命令验证服务状态,注意虚拟机资源分配(建议CPU≥4核、内存≥8GB),避免因资源不足导致安装失败。
背景介绍
DevStack是OpenStack社区提供的快速部署工具,通过自动化脚本集成了OpenStack的核心服务(如Nova、Neutron、Glance、Keystone等),适用于开发、测试和学习环境,本文将详细介绍如何在虚拟机(VM)的Ubuntu系统中安装DevStack,帮助读者快速搭建本地OpenStack实验环境。
准备工作
在开始安装前,需确保虚拟机满足以下基本要求,以避免安装过程中出现兼容性或资源不足问题。
虚拟机配置建议
- CPU:至少4核(推荐8核,因OpenStack服务对计算资源需求较高)
- 内存:至少8GB(推荐16GB,因多服务同时运行占用内存较大)
- 磁盘:至少50GB可用空间(推荐100GB,用于存放镜像、日志及数据)
- 网络:建议选择NAT模式或桥接模式,确保虚拟机可访问外网(用于下载依赖包)
Ubuntu系统版本
DevStack支持Ubuntu 20.04 LTS(Focal Fossa)和22.04 LTS(Jammy Jellyfish),本文以Ubuntu 22.04 LTS为例,若使用其他版本,可能需调整部分依赖包的安装命令。

基础环境配置
(1)更新系统包
sudo apt update && sudo apt upgrade -y
(2)安装必要工具
sudo apt install -y git curl wget vim net-tools build-essential python3-dev python3-pip
(3)关闭防火墙和SELinux(Ubuntu默认无SELinux,可忽略)
sudo ufw disable # 关闭防火墙
(4)配置主机名与hosts解析
sudo hostnamectl set-hostname devstack-vm # 设置自定义主机名 echo "127.0.0.1 $(hostname)" | sudo tee -a /etc/hosts # 添加hosts解析
安装DevStack
创建专用用户
DevStack不建议使用root用户运行,因此需创建一个普通用户(本文以stack为例),并赋予sudo权限。
sudo useradd -s /bin/bash -d /opt/stack stack # 创建用户并指定家目录 sudo passwd stack # 设置用户密码 echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack # 赋予sudo权限 sudo su - stack # 切换到stack用户
克隆DevStack代码库
DevStack代码库托管在GitHub,可通过git克隆最新版本(本文以2024.1版本为例,可根据需求切换分支)。
cd /opt/stack # 进入用户家目录 git clone https://opendev.org/openstack/devstack.git # 克隆代码库 cd devstack git checkout stable/2024.1 # 切换到2024.1稳定分支
配置local.conf文件
local.conf是DevStack的核心配置文件,用于定义安装参数(如密码、网络、服务列表等),在devstack目录下创建local.conf文件:
cat > local.conf <<EOF [[local|localrc]] # 设置密码(建议统一设置,避免记忆麻烦) ADMIN_PASSWORD=secret DATABASE_PASSWORD=secret RABBIT_PASSWORD=secret SERVICE_PASSWORD=secret # 设置虚拟机管理IP(若为NAT模式,需为虚拟机桥接网卡的IP) HOST_IP=192.168.1.100 # 请替换为实际虚拟机IP # 启用的OpenStack服务(可根据需求增删) enable_service=nova,neutron,glance,keystone,horizon,cinder # 禁用不必要的服务(如默认启用ceilometer,可禁用) disable_service=ceilometer-acentral,ceilometer-anotification,ceilometer-collector # 设置镜像下载源(默认从Ubuntu官方镜像下载,可改为国内源加速) IMAGE_URL=http://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img # 设置磁盘空间限制(避免因空间不足导致安装失败) DISK_IMAGE_SIZE=50G EOF
关键参数说明:
ADMIN_PASSWORD:管理员密码,登录Horizon界面时使用。HOST_IP:虚拟机的固定IP地址(需通过ip a命令查看,通常为ens33或eth0网卡的IP)。enable_service:需启用的OpenStack核心服务,至少包含nova(计算)、neutron(网络)、glance(镜像)、keystone(身份认证)、horizon( dashboard)。
运行安装脚本
DevStack通过stack.sh脚本自动化安装,执行以下命令开始安装(首次安装时间较长,约30-60分钟,取决于网络速度和硬件性能):
./stack.sh
安装过程中,脚本会自动:
- 安装Python依赖包(如pip、virtualenv)
- 下载并配置OpenStack服务
- 初始化数据库(MariaDB)
- 创建虚拟网络(Neutron)
- 部署Horizon dashboard
若出现报错,可查看日志文件/opt/stack/devstack/log/stack.sh.log定位问题。
验证安装
安装成功后,脚本会输出以下信息(类似如下):
Horizon is now available at http://192.168.1.100/
Please log in as 'admin' with password 'secret'
访问Horizon dashboard
打开浏览器,输入http://HOST_IP(即local.conf中设置的HOST_IP),进入登录页面。
- 用户名:admin
- 密码:
local.conf中设置的ADMIN_PASSWORD(如示例中的secret)
登录成功后,可看到

