From Bare Metal to the Cloud: OpenStack Deployment Tools 3

Auto Draft

In the previous article, we introduced two deployment tools backed by powerful vendors. This post will introduce deployment projects primarily maintained by community members: OpenStack-Ansible, Kolla-Ansible, and OpenStack-Helm.

OpenStack-Ansible

As the name suggests, OpenStack-Ansible is a tool for deploying OpenStack via Ansible. It supports a wide range of OpenStack components and various plugins.

OpenStack-Ansible primarily installs OpenStack using LXC containers and Ansible playbooks. Some services, such as nova-compute, are not placed within LXC containers.

It also offers the most extensive network plugin support among the three deployment tools introduced today, including Calico, which is very useful in certain specialized environments.

In addition to deploying OpenStack, OpenStack-Ansible can also deploy the Ceph storage required by OpenStack. In contrast, for other projects like Kolla-Ansible, the Ceph cluster must be deployed separately and configured via configuration overrides.

Kolla-Ansible

Kolla-Ansible is the deployment tool chosen for this article series. Like OpenStack-Ansible, Kolla-Ansible also uses Ansible playbooks to deploy OpenStack.

The difference between Kolla-Ansible and OpenStack-Ansible is that Kolla-Ansible deploys directly using containers created by the Kolla project, whereas OpenStack-Ansible uses Ansible playbooks to install and configure within LXC containers. This is why Kolla-Ansible is much faster at deployment; you simply pull the container images and inject the configuration files. There's no need to reinstall packages one by one, as that time was already spent during the container image build process.

This is exactly why this series uses Kolla-Ansible. It is fast to install, and with just one configuration file, you can easily set up a full-scale OpenStack cluster.

OpenStack-Helm

OpenStack-Helm, as the name implies, deploys OpenStack via Helm charts. Since it uses Helm charts, this means OpenStack is deployed on top of Kubernetes, using Kubernetes to manage the various OpenStack components.

Although some community members use OpenStack-Helm in production environments, it does not yet have an official stable release. If readers wish to use it, it is recommended that they are proficient in both Kubernetes and OpenStack.

While deploying OpenStack on Kubernetes offers benefits like self-healing, I believe it also introduces significantly higher complexity. System administrators must understand Kubernetes and Helm in addition to OpenStack, which makes troubleshooting much more difficult.

Summary

The three methods mentioned above are all deployment tools primarily maintained by the community. I personally recommend Kolla-Ansible. In the next article, we will introduce Kolla-Ansible and how to use it to deploy both all-in-one and high-availability OpenStack clusters.


Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise specified.

Leave a Reply