一体机

事情即将变得真实!使用容器或虚拟机中的 OpenStack 很好,但与使用硬件的感觉相比,还是差强人意。

先决条件 Linux & 网络

最小安装

你需要一个安装了最新 Linux 系统的机器。你可以下载 Minimal CD 用于 Ubuntu 版本,因为 DevStack 会下载并安装所有其他依赖项。netinstall ISO 可用于 FedoraCentOS/RHEL。你可能会想在笔记本电脑上使用桌面发行版,它可能有效,但你可能需要告诉 Network Manager 不要干涉 OpenStack 用于桥接的接口。

网络配置

确定用于将你的 OpenStack 云与现有网络集成的接口上的网络配置。例如,如果你的网络通过 DHCP 分配的 IP 地址是 192.168.1.X - 其中 X 在 100 到 200 之间,你将能够使用 201-254 的 IP 地址作为 浮动 IP

为了方便后续操作,将你的主机更改为使用静态 IP 地址而不是 DHCP(例如 192.168.1.201)。

安装摇摇欲坠

添加你的用户

我们需要添加一个用户来安装 DevStack。(如果你在安装过程中创建了用户,可以跳过此步骤,只需授予用户下面的 sudo 权限)

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

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

$ sudo chmod +x /opt/stack

由于此用户将对你的系统进行许多更改,因此它需要具有 sudo 权限

$ apt-get install sudo -y || dnf install -y sudo
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

注意

在某些系统上,你可能需要使用 sudo visudo

从现在开始,你应该使用你创建的用户。 注销登录 作为该用户

$ sudo su stack && cd ~

下载 DevStack

我们将通过 https 获取最新版本的 DevStack

$ sudo apt-get install git -y || sudo dnf install -y git
$ git clone https://opendev.org/openstack/devstack
$ cd devstack

运行 DevStack

现在配置 stack.sh。DevStack 在 devstack/samples/local.conf 中包含一个示例。创建 local.conf,如下所示,以执行以下操作

  • FLOATING_RANGE 设置为本地网络上未使用的范围,例如 192.168.1.224/27。这会将 IP 地址 225-254 配置为用作浮动 IP。

  • FIXED_RANGE 设置为配置实例使用的内部地址空间。

  • 设置 MySQL 管理员密码。此密码用于设置为 OpenStack 用户的 admindemo 帐户。

  • 设置 MySQL 管理员密码。默认情况下是随机的十六进制字符串,如果你需要直接查看数据库以获取任何内容,这会很不方便。

  • 设置 RabbitMQ 密码。

  • 设置服务密码。OpenStack 服务(Nova、Glance 等)使用此密码与 Keystone 进行身份验证。

警告

在密码中使用字母数字字符,因为使用特殊字符可能会导致某些服务无法正常工作。

local.conf 应该如下所示

[[local|localrc]]
FLOATING_RANGE=192.168.1.224/27
FIXED_RANGE=10.11.12.0/24
ADMIN_PASSWORD=supersecret
DATABASE_PASSWORD=iheartdatabases
RABBIT_PASSWORD=flopsymopsy
SERVICE_PASSWORD=iheartksl

注意

在 devstack 仓库的 samples 目录下有一个示例 local.conf 文件。

运行 DevStack

$ ./stack.sh

随之而来的是看似无休止的活动流。完成后,你将看到 stack.sh 的工作摘要,包括相关的 URL、帐户和密码,以便探索你闪亮的新 OpenStack。

使用 OpenStack

此时,你应该能够从本地网络上的其他计算机访问仪表板。在此示例中,这将是 http://192.168.1.201/ 用于仪表板(也称为 Horizon)。启动虚拟机,如果你赋予它们浮动 IP 和安全组访问权限,这些虚拟机将可以从你的网络上的其他机器访问。