2024-12-08 devstack

DevStack #

_images/徽标-蓝色.png

DevStack 是一系列可扩展的脚本,用于根据来自 git master 的所有内容的最新版本快速构建完整的 OpenStack 环境。它可交互地用作开发环境,并作为 OpenStack 项目大部分功能测试的基础。

源代码位于https://opendev.org/openstack/devstack。

警告

DevStack 将在安装过程中对您的系统进行重大更改。仅在专用于此目的的服务器或虚拟机上运行 DevStack。

快速入门 #

安装 Linux #

从干净且最小限度的 Linux 系统安装开始。DevStack 尝试支持 Ubuntu 的两个最新 LTS 版本:Rocky Linux 9 和 openEuler。

如果您没有偏好,Ubuntu 22.04(Jammy)是经过最多测试的,并且可能会运行得最顺利。

添加 Stack 用户(可选) #

DevStack 应该以非 root 用户身份运行,并启用 sudo(通常使用“ubuntu”或“cloud-user”等云镜像的标准登录就可以了)。

如果你不使用云镜像,你可以创建一个单独的堆栈用户来运行 DevStack

$ sudo useradd -s /bin/bash -d /opt/stack -m stack

确保用户的主目录stack对所有人都具有可执行权限,因为基于 RHEL 的发行版会创建它700,而 Ubuntu 21.04+750 可能会在部署期间导致问题。

$ sudo chmod +x /opt/stack

由于该用户将对您的系统进行许多更改,因此它应该具有 sudo 权限:

$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
$ sudo -u stack -i

下载 DevStack #

$ git clone https://opendev.org/openstack/devstack
$ cd devstack

devstackrepo 包含安装 OpenStack 的脚本和配置文件的模板。

创建 local.conf #

local.conf在 devstack git repo 的根目录创建一个预设有四个密码的文件。

[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

这是开始使用 DevStack 所需的最低配置。

笔记

devstack 存储库中的samples目录下有一个示例local.conf文件。

警告

密码中只能使用字母数字字符,因为某些服务在使用特殊字符时无法运行。

开始安装 #

$ ./stack.sh

这将需要 15 - 30 分钟,主要取决于您的互联网连接速度。在此过程中将安装许多 git 树和包。

利润! #

您现在有一个可以运行的 DevStack!恭喜!

您的 devstack 将安装keystoneglancenovaplacementcinderneutronhorizon。浮动 IP 将可用,访客可以访问外部世界。

您可以访问 Horizon 来体验 OpenStack 的 Web 界面,并从那里管理虚拟机、网络、卷和图像。

您可以在您的 shell 中,然后使用 命令行工具来管理您的 devstack。source openrc``openstack

您可以创建一个虚拟机并通过 SSH 连接到它

您可以运行已配置为与您的 devstack 配合使用的 tempest 测试。cd /opt/stack/tempest

您可以对 OpenStack 代码进行更改并验证它们

进一步了解 #

详细了解我们的配置系统,以便根据您的需要定制 devstack。包括对默认网络进行调整。

阅读人们所具有的特定设置的指南(注意:指南是即时贡献,可能并不总是与最新的 devstack 保持同步)。

启用devstack 插件来支持基本 devstack 中不存在的附加服务、功能和配置。

在您的 CI 中将 devstack 与Ansible 角色和 Zuul V3作业结合使用。使用此完整迁移方法将您的 devstack Zuul V2 作业迁移到 Zuul V3 。

了解我们尝试使用 devstack 做什么,并通过对项目做出贡献来帮助我们。

如果您是 devstack 的新贡献者,请参阅:所以您想贡献……

内容 #

./stack.sh status