在单台虚拟机上部署OpenStack开发环境:DevStack全攻略
devstack 项目地址: https://gitcode.com/gh_mirrors/dev/devstack
概述
对于OpenStack开发者和运维人员来说,快速搭建一个可用的测试环境至关重要。DevStack项目提供了一种在单台虚拟机上快速部署完整OpenStack环境的方法。本文将详细介绍如何使用DevStack在单个虚拟机中构建OpenStack开发环境,适合开发测试和学习使用。
环境准备
虚拟机配置要求
要运行DevStack,你需要准备一台满足以下条件的虚拟机:
- 操作系统:支持的主流Linux发行版(推荐Ubuntu或CentOS)
- 内存:至少4GB(8GB以上可获得更好性能)
- 存储:建议至少40GB磁盘空间
- 网络:需要网络连接以下载依赖包
镜像选择建议
如果使用云服务提供商,建议选择预装了cloud-init
的镜像。Ubuntu官方提供的每日构建镜像就是一个不错的选择。cloud-init
能够在虚拟机启动时自动执行用户数据脚本,极大简化了部署流程。
自动化部署方案
使用cloud-init自动部署
通过cloud-init,我们可以实现DevStack的一键部署。以下是完整的cloud-init配置示例:
#cloud-config
users:
- default
- name: stack
lock_passwd: False
sudo: ["ALL=(ALL) NOPASSWD:ALL\nDefaults:stack !requiretty"]
shell: /bin/bash
write_files:
- content: |
#!/bin/sh
DEBIAN_FRONTEND=noninteractive sudo apt-get -qqy update || sudo yum update -qy
DEBIAN_FRONTEND=noninteractive sudo apt-get install -qqy git || sudo yum install -qy git
sudo chown stack:stack /home/stack
cd /home/stack
git clone https://opendev.org/openstack/devstack
cd devstack
echo '[[local|localrc]]' > local.conf
echo ADMIN_PASSWORD=password >> local.conf
echo DATABASE_PASSWORD=password >> local.conf
echo RABBIT_PASSWORD=password >> local.conf
echo SERVICE_PASSWORD=password >> local.conf
./stack.sh
path: /home/stack/start.sh
permissions: 0755
runcmd:
- su -l stack ./start.sh
这个配置会:
- 创建一个名为"stack"的非root用户
- 安装Git等必要工具
- 克隆DevStack代码库
- 创建基本的local.conf配置文件
- 自动执行stack.sh安装脚本
日志查看
部署过程中,所有输出日志默认会保存在/var/log/cloud-init-output.log
中,方便排查问题。
手动部署方案
如果无法使用cloud-init,也可以手动完成部署:
- 登录虚拟机,创建stack用户
- 安装Git:
sudo apt-get install -y git
或sudo yum install -y git
- 切换到stack用户:
su - stack
- 克隆DevStack仓库
- 创建local.conf配置文件
- 执行./stack.sh开始安装
配置说明
基本的local.conf配置至少应包含以下内容:
[[local|localrc]]
ADMIN_PASSWORD=password
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password
这些是OpenStack各服务的基本认证密码,生产环境中应使用更复杂的密码。
使用技巧
- 离线模式:首次成功运行stack.sh后,设置
OFFLINE=True
可以让后续运行不依赖网络连接 - 快速重置:如果环境出现问题,可以直接删除虚拟机重新部署
- 开发测试:适合OpenStack组件开发和功能测试
- 学习环境:初学者可以通过这个环境学习OpenStack各服务
性能考虑
需要注意的是,在这种单虚拟机环境中启动的OpenStack实例运行在QEMU模拟器中,性能会受到一定影响。因此这种部署方式主要适用于开发和测试目的,不建议用于生产环境。
总结
通过DevStack在单台虚拟机上部署OpenStack环境,开发者可以快速获得一个完整的测试平台。无论是使用cloud-init自动化部署还是手动安装,都能在短时间内搭建起可用的环境。这种方案特别适合OpenStack组件开发、功能验证和学习使用。
devstack 项目地址: https://gitcode.com/gh_mirrors/dev/devstack
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考