If you have ever installed or attempted to install OpenStack, you know how difficult the process can be. You may...
be wondering why OpenStack installation is so complicated and whether there's an easier approach. Alas, there are no answers to these questions.
The OpenStack command line
To avoid any confusion, let's make this clear: OpenStack is a cloud-operating system. OpenStack is not a VM, but rather sits on top of VMs. Also, OpenStack is written in Python.
As you install each component, OpenStack installs a command-line tool that works in tandem with it. The problem is that each component -- of which there are dozens -- has its own command-line tool, each with its own name and parameters. For example, you run Keystone to install users and roles in the Identity Service. Then you run Glance to load VM images. You would then use Nova to deploy those images. After a while, the sheer number of components and their respective command-line tools can get overwhelming.
So, other than the command line, what options do we have to simplify the OpenStack installation process? Let's have a look.
Once a basic product, DevStack is now far more complex with many configuration options. For example, rather than just installing a simple learning system on your laptop, DevStack now allows users to build multi-node systems. But, according to the official DevStack documentation, "DevStack is not a general OpenStack installer and was never meant to be everything to everyone."
Developed by Mirantis as part of the OpenStack community effort, Fuel is a graphical tool used to install and manage OpenStack.
To use Fuel, download Mirantis OpenStack and create a bootable .ISO image. Fuel guides the user through the installation process and installs a web server and webpage from which you can lay out the logical arrangement of OpenStack into Fuel Master, Controller, Storage and Compute nodes.
Fuel installs different OpenStack components, like Nova or Neutron for networking and Cinder for block storage, using OpenStack APIs. This is accomplished by selecting VMs and then assigning them an OpenStack role. Fuel then pushes out bare-metal installations, installing QEMU CPU virtualization and then CentOS or Ubuntu OS. It then installs OpenStack cloud components on top of that, as well as RabbitMQ and the other software OpenStack needs to run.
If you're interested in trying Fuel, Mirantis offers a free online demo, if you log in with the credentials admin/admin.
Ansible is a container technology similar to Docker or Chef. Its goal is to simplify building cloud infrastructure by laying down software, storage, networks and VMs with config files that abstract your infrastructure or model the layout.
Ansible requires no programming; instead, you write the configuration using the YAML markup language, which is similar to HTML or JSON.
Ansible is open source and crowd-sourced, allowing you to take advantage of contributions from other users, saving you time and effort.
According to one Ansible developer at OpenStack, when two system admins were given the task of setting up OpenStack for their company, they opted to use Ansible to simplify the process. Within a week, their system was up and running, and they were contributing code back to Ansible for an OpenStack project.
Alternative approaches to OpenStack installation
Beyond these tools, there are some other approaches to make an OpenStack installation easier. They include:
- Public clouds: One way to simplify an OpenStack installation is to use a public cloud provider with a preexisting interface and infrastructure in place.
- Cloud on a stick: If you don't mind vendor lock, you could use a hardware appliance already loaded with OpenStack, such as Cisco Metapod or ZeroStack.
- Vendor distribution: There are a number of different vendor distributions, each with its own unique installation mechanism.
When it comes to OpenStack, there are plenty of tools and techniques to reduce the headache of installation; I'd recommend using Fuel or Ansible, if you are looking to set up a private cloud.
Ansible 2.0 charts a new course for configuration
OpenStack Mitaka makes installation easy
Beware the OpenStack learning curve