部署/评估快速入门¶
本指南提供使用 Kolla Ansible 在裸机服务器或虚拟机上部署 OpenStack 的分步说明。对于开发者,我们有 开发者快速入门。
推荐阅读¶
主机机器要求¶
主机机器必须满足以下最低要求
2 个网络接口
8GB 主内存
40GB 磁盘空间
有关支持的主机操作系统详细信息,请参阅 支持矩阵。 Kolla Ansible 支持受支持的操作系统提供的默认 Python 3.x 版本。有关更多信息,请参阅 测试过的运行时。
安装依赖项¶
通常,本节中使用的系统包管理器命令必须以 root 权限运行。
通常建议使用虚拟环境来安装 Kolla Ansible 及其依赖项,以避免与系统站点包冲突。请注意,这与远程执行的虚拟环境的使用无关,后者在 虚拟环境 中有描述。
对于 Debian 或 Ubuntu,更新包索引。
sudo apt update安装 Python 构建依赖项
对于 CentOS 或 Rocky,运行
sudo dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux对于 Debian 或 Ubuntu,运行
sudo apt install git python3-dev libffi-dev gcc libssl-dev libdbus-glib-1-dev
安装虚拟环境的依赖项¶
安装虚拟环境依赖项。
对于 CentOS 或 Rocky,您无需执行任何操作。
对于 Debian 或 Ubuntu,运行
sudo apt install python3-venv创建虚拟环境并激活它
python3 -m venv /path/to/venv source /path/to/venv/bin/activate
在运行依赖于其中安装的包的任何命令之前,应激活虚拟环境。
确保安装了最新版本的 pip
pip install -U pip
安装 Kolla-ansible¶
使用
pip安装 kolla-ansible 及其依赖项。pip install git+https://opendev.org/openstack/kolla-ansible@stable/2025.2创建
/etc/kolla目录。sudo mkdir -p /etc/kolla sudo chown $USER:$USER /etc/kolla
将
globals.yml和passwords.yml复制到/etc/kolla目录。cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla将
all-in-one库存文件复制到当前目录。cp /path/to/venv/share/kolla-ansible/ansible/inventory/all-in-one .
安装 Ansible Galaxy 依赖项¶
安装 Ansible Galaxy 依赖项
kolla-ansible install-deps
准备初始配置¶
库存¶
下一步是准备我们的库存文件。库存是 Ansible 文件,我们指定主机和它们所属的组。我们可以使用它来定义节点角色和访问凭据。
Kolla Ansible 带有 all-in-one 和 multinode 示例库存文件。它们之间的区别在于,前者已准备好在 localhost 上部署单节点 OpenStack。在本指南中,我们将展示 all-in-one 安装。
Kolla 密码¶
部署中使用的密码存储在 /etc/kolla/passwords.yml 文件中。此文件中的所有密码都为空,必须手动填写或通过运行随机密码生成器来填写
kolla-genpwd
Kolla globals.yml¶
globals.yml 是 Kolla Ansible 的主配置文件,默认存储在 /etc/kolla/globals.yml 文件中。部署 Kolla Ansible 需要几个选项
镜像选项
用户必须指定将用于我们部署的镜像。在本指南中,将使用 Quay.io 提供的预构建镜像。要了解有关构建机制的更多信息,请参阅 构建容器镜像。
Kolla 提供容器中几种 Linux 发行版的选择
CentOS Stream (
centos)Debian (
debian)Rocky (
rocky)Ubuntu (
ubuntu)
对于新手,我们建议使用 Rocky Linux 10 或 Ubuntu 24.04。
kolla_base_distro: "rocky"AArch64 选项
Kolla 提供 x86-64 和 aarch64 架构的镜像。它们不是“多架构”,因此 aarch64 的用户需要定义“openstack_tag_suffix”设置
openstack_tag_suffix: "-aarch64"这样将使用为 aarch64 架构构建的镜像。
网络
Kolla Ansible 需要设置一些网络选项。我们需要设置 OpenStack 使用的网络接口。
要设置的第一个接口是“network_interface”。这是多个管理类型网络的默认接口。
network_interface: "eth0"所需的第二个接口专用于 Neutron 外部(或公共)网络,可以是 VLAN 或扁平网络,具体取决于网络的创建方式。此接口应在没有 IP 地址的情况下处于活动状态。否则,实例将无法访问外部网络。
neutron_external_interface: "eth1"要了解有关网络配置的更多信息,请参阅 网络概述。
接下来,我们需要为管理流量提供浮动 IP。此 IP 将由 keepalived 管理以提供高可用性,应设置为未使用地址在连接到我们的
network_interface的管理网络中。如果您使用现有的 OpenStack 安装进行部署,请确保 IP 在 VM 的配置中允许。kolla_internal_vip_address: "10.1.0.250"启用附加服务
默认情况下,Kolla Ansible 提供一个裸露的计算套件,但它确实提供对大量附加服务的支持。要启用它们,将
enable_*设置为“yes”。Kolla 现在支持许多 OpenStack 服务,这里有一个可用服务列表。有关服务配置的更多信息,请参阅 服务参考指南。
多个 globals 文件
为了更精细的控制,现在可以使用多个 yml 文件启用主
globals.yml文件中的任何选项。只需在/etc/kolla/下创建一个名为globals.d的目录,并将所有相关的*.yml文件放在其中。kolla-ansible脚本将自动将它们全部作为参数添加到ansible-playbook命令中。一个示例用例是,如果操作员希望稍晚于初始部署启用 cinder 及其所有选项,而无需篡改现有的
globals.yml文件。这可以通过使用单独的cinder.yml文件来实现,该文件放置在/etc/kolla/globals.d/目录中,并在其中添加所有相关的选项。虚拟环境
建议使用虚拟环境来执行远程主机上的任务。这在 虚拟环境 中有介绍。
部署¶
配置设置后,我们可以继续部署阶段。首先,我们需要设置基本的宿主机级别依赖项,例如 docker。
Kolla Ansible 提供了一个 playbook,它将以正确的版本安装所有必需的服务。
以下假设使用 all-in-one 库存。如果使用不同的库存,例如 multinode,请相应地替换 -i 参数。
使用 kolla 部署依赖项引导服务器
kolla-ansible bootstrap-servers -i ./all-in-one对主机进行预部署检查
kolla-ansible prechecks -i ./all-in-one最后,进行实际的 OpenStack 部署
kolla-ansible deploy -i ./all-in-one
当此 playbook 完成时,OpenStack 应该启动、运行并正常工作!如果在执行过程中发生错误,请参阅 故障排除指南。
使用 OpenStack¶
安装 OpenStack CLI 客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2025.2OpenStack 需要一个
clouds.yaml文件,其中设置了 admin 用户的凭据。要生成此文件kolla-ansible post-deploy注意
该文件将在
/etc/kolla/clouds.yaml中生成,您可以通过将其复制到/etc/openstack或~/.config/openstack,或通过设置OS_CLIENT_CONFIG_FILE环境变量来使用它。根据 Kolla Ansible 的安装方式,有一个脚本将创建示例网络、镜像等。
警告
您可以自由使用以下
init-runonce脚本用于演示目的,但请注意,您不必运行它才能使用您的云。根据您的自定义设置,它可能无法工作,或者可能与您想要创建的资源冲突。你已被警告。/path/to/venv/share/kolla-ansible/init-runonce