OpenStack 官网给出了可用的部署工具:OpenStack Deployment Tools ,接下来简要介绍几种自动化部署方式,重点关注单机部署方式,即 All-In-One 。

Software Description
TRIPLEO Deploys OpenStack using OpenStack itself
OPENSTACK-HELM Deploys OpenStack in containers using Helm
KOLLA-ANSIBLE Deploys OpenStack in containers using Ansible
KAYOBE Deployment of containerised OpenStack to bare metal
OPENSTACK-ANSIBLE Ansible playbooks to deploy OpenStack
OPENSTACK-CHARMS Deploys OpenStack in containers using Charms and Juju
BIFROST Ansible playbooks using ironic
OPENSTACK-CHEF Chef cookbooks to build, operate and consume OpenStack
LOCI Lightweight OCI containers
PUPPET-OPENSTACK Puppet modules to deploy OpenStack
RPM-PACKAGING RPM package specs to deploy OpenStack

DevStack

DevStack 是一系列可执行脚本,用于快速构建最新版本的 OpenStack 环境。在安装过程中 DevStack 将会对系统进行修改,因此仅推荐在服务器或虚拟机中使用。DevStack 支持 Ubuntu 最新的 2 个长期支持版本,最新/当前的 Fedora 版本,CentOS/RHEL 8 和 OpenSUSE 。

在 CentOS7 上使用 DevStack 部署遇到错误尚未解决,之后改用其他 Linux 或解决了问题再写篇部署流程。

Charms

使用 MAASJujuOpenStack Charms 在多台主机上部署 OpenStack 。MAAS 全称 Metal as a Service 裸金属即服务;Juju 是服务编排工具,工作在 Puppet 之上,不支持非 Ubuntu 环境。Ubuntu 服务器、OpenStack、用于裸机配置的 MAAS 、用于服务编排的 Juju、以及用于系统管理和监控的 Landscape 一起组成 Ubuntu 云套件。

Ansible

Ansible 是一个自动化工具,可以用于配置系统、部署软件和编排任务,例如持续部署或零停机滚动更新。使用 Ansible 进行自动化部署,支持多机部署和单机部署,最新的多机部署支持 Ubuntu 最新的 2 个长期支持版本,Debian 10 和 CentOS/RHEL 8 ,单机部署方式参见 All-In-One quickstart Guide

Kolla-Ansible

使用 Docker 容器和 Ansible 剧本在裸金属或虚拟机上部署 OpenStack ,将服务部署在不同的容器中。Kolla 项目包含三个仓库:

Deliverable Repository
kolla https://opendev.org/openstack/kolla
kolla-ansible https://opendev.org/openstack/kolla-ansible
kayobe https://opendev.org/openstack/kayobe

在裸金属服务器或虚拟机上使用 Kolla-Ansible 部署 OpenStack 的具体步骤参见 User Guides - Quick Start

TripleO

TripleO 指的是 OpenStack on OpenStack ,即在 OpenStack 上部署 OpenStack ,目的是使用现有 OpenStack 组件的子集在裸金属硬件上部署和管理生产云。使用 TripleO 首先得创建一个面向部署云的操作员的云下(undercloud),包含部署和管理面向租户的云上(overcloud)所需的 OpenStack 组件。TripleO 可以作为一个独立的环境使用,所有的服务都安装在一个虚拟机或裸金属机器上,多机部署和单机部署的方式参见 TripleO Deployment Guide

RDO - Packstack

RDO 是一个在 CentOS、Fedora 和 Red Hat Enterprise Linux 上使用和部署 OpenStack 的社区, Packstack 是其提供的部署工具,使用 SSH 和 Puppet 模块进行自动化部署,主要用于概念验证。目前官方给出的文档说明支持在 RHEL 7/CentOS 7 上安装 Train 版本,以及在 RHEL 8/CentOS 8 上安装 Ussuri 版本。