开发快速入门

本指南提供逐步说明,使用 Kolla Ansible 在裸机服务器或虚拟机上部署 OpenStack。对于部署/评估,我们有 快速入门 指南。

主机机器要求

主机机器必须满足以下最低要求

  • 2 个网络接口

  • 8GB 主内存

  • 40GB 磁盘空间

有关支持的主机操作系统详细信息,请参阅 支持矩阵。Kolla Ansible 支持受支持的操作系统提供的默认 Python 3.x 版本。有关更多信息,请参阅 经过测试的运行时

安装依赖项

通常,本节中使用的系统包管理器命令必须以 root 权限运行。

通常建议使用虚拟环境安装 Kolla Ansible 及其依赖项,以避免与系统站点包冲突。请注意,这与远程执行的虚拟环境使用无关,后者在 虚拟环境 中有描述。

  1. 对于 Debian 或 Ubuntu,更新包索引。

    sudo apt update
    
  2. 安装 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
    

安装虚拟环境的依赖项

  1. 安装虚拟环境依赖项。

    对于 CentOS 或 Rocky,您无需执行任何操作。

    对于 Debian 或 Ubuntu,运行

    sudo apt install python3-venv
    
  2. 创建虚拟环境并激活它

    python3 -m venv /path/to/venv
    source /path/to/venv/bin/activate
    

    在运行依赖于其中安装的包的任何命令之前,应激活虚拟环境。

  3. 确保安装了最新版本的 pip

    pip install -U pip
    

安装 Kolla-ansible

  1. 从 git 克隆 kolla-ansible 仓库。

    git clone --branch stable/2025.2 https://opendev.org/openstack/kolla-ansible
    
  2. 安装 kollakolla-ansible 的需求

    pip install -e ./kolla-ansible
    
  3. 创建 /etc/kolla 目录。

    sudo mkdir -p /etc/kolla
    sudo chown $USER:$USER /etc/kolla
    
  4. 将配置文件复制到 /etc/kolla 目录。 kolla-ansibleetc/kolla 中保存配置文件(globals.ymlpasswords.yml)。

    cp -r kolla-ansible/etc/kolla/* /etc/kolla
    
  5. 将清单文件复制到当前目录。 kolla-ansibleansible/inventory 目录中保存清单文件(all-in-onemultinode)。

    cp kolla-ansible/ansible/inventory/* .
    

安装 Ansible Galaxy 依赖项

安装 Ansible Galaxy 依赖项

kolla-ansible install-deps

准备初始配置

库存

下一步是准备我们的清单文件。清单是 Ansible 文件,我们可以在其中指定主机及其所属的组。我们可以使用它来定义节点角色和访问凭据。

Kolla Ansible 带有 all-in-onemultinode 示例清单文件。它们之间的区别在于,前者已准备好在 localhost 上部署单节点 OpenStack。在本指南中,我们将展示 all-in-one 安装。

Kolla 密码

部署中使用的密码存储在 /etc/kolla/passwords.yml 文件中。此文件中的所有密码都为空,必须手动填写或通过运行随机密码生成器来填写

cd kolla-ansible/tools
./generate_passwords.py

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 参数。

  1. 使用 kolla 部署依赖项引导服务器

kolla-ansible bootstrap-servers -i ../all-in-one
  1. 对主机进行预部署检查

kolla-ansible prechecks -i ../all-in-one
  1. 最后,开始实际的 OpenStack 部署

kolla-ansible deploy -i ../all-in-one

当此 playbook 完成时,OpenStack 应该启动、运行并正常工作!如果在执行过程中发生错误,请参阅 故障排除指南

使用 OpenStack

  1. 安装 OpenStack CLI 客户端

    pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2025.2
    
  2. OpenStack 需要一个 clouds.yaml 文件,其中设置了管理员用户的凭据。要生成此文件

    kolla-ansible post-deploy
    
    • 该文件将在 /etc/kolla/clouds.yaml 中生成,您可以通过将其复制到 /etc/openstack 或 ~/.config/openstack 或设置 OS_CLIENT_CONFIG_FILE 环境变量来使用它。

  3. 根据 Kolla Ansible 的安装方式,有一个脚本将创建示例网络、镜像等。

    警告

    您可以自由使用以下 init-runonce 脚本用于演示目的,但请注意,您不必运行它才能使用您的云。根据您的自定义设置,它可能无法工作,或者可能与您想要创建的资源冲突。你已被警告。

kolla-ansible/tools/init-runonce