一体机¶
事情即将变得真实!使用容器或虚拟机中的 OpenStack 很好,但与使用硬件的感觉相比,还是差强人意。
先决条件 Linux & 网络¶
最小安装¶
你需要一个安装了最新 Linux 系统的机器。你可以下载 Minimal CD 用于 Ubuntu 版本,因为 DevStack 会下载并安装所有其他依赖项。netinstall ISO 可用于 Fedora 和 CentOS/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 用户的 admin 和 demo 帐户。
设置 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 和安全组访问权限,这些虚拟机将可以从你的网络上的其他机器访问。