To learn more about OpenStack cloud management software, a student or researcher may install OpenStack on a single machine, such as a laptop computer or a virtual machine, and emulate a small datacenter using virtual machines or containers.
Researchers and students may choose from multiple projects that will set up OpenStack on a single machine. Some projects are community-based open-source projects and others are vendor supported projects (while still nominally open-source).
This post is an overview of links and resources to installing OpenStack on one machine.
I am just beginning to investigate OpenStack so I have not yet installed it. I’ll try some of the installers listed below and see which ones work best. For now, I provide a list along with relevant links.
DevStack is a community-driven open-source project that provides scripts and drivers to install OpenStack on a single machine. It includes direction to install on a laptop computer and to install on a single virtual machine. Devstack may also be configured to use LXC containers as compute nodes, or to use nested KVM virtualization for compute nodes.
DevStack looks like the best option for setting up OpenStack on a typical laptop computer. It does not specify hardware requirements.
Below I list other installers that appear to support an all-in-one system on a single node. However, these “commercial-grade” installers specify high hardware requirements.
Openstack Autopilot is the Ubuntu OpenStack installer. It is free as long as you use less than ten machines in your cloud infrastructure. So, most students and researchers will be able to play around with Autopilot for free. Autopilot requires a minimum of 12G of RAM installed in your laptop and Autopilot requires access to KVM or the install will fail.
Autopilot will set up an OpenStack cloud using LXD containers. This means that the system may run just as well in a virtual machine as it would on dedicated hardware (I have yet to try this out). The Ubuntu website offers good documentation describing how to set up OpenStack in with LXD containers on a single machine.
Red Hat RDO
The RDO project provides documentation describing how to install OpenStack on a single node.
OpenStack on Ansible (OSA)
OpenStack on Ansible (OSA) uses the Ansible IT automation framework to deploy OpenStack. OSA offers an All-in-One (AIO) option to install OpenStack on a single machine. A developer at Rackspace wrote a blog post offering more information about how to use OSA AIO to install OpenStack on a single machine.
However, OSA currently requires some steep hardware requirements that a typical Laptop computer will not be able to offer, such as eight vCPUs. Read the OpenStack on Ansible documentation to learn more.
Mirantis offers an OpenStack installer called Fuel. I found some old posts about setting up all-in-one systems using Mirantis Fuel but newer releases do not seem to refer to all-in-one systems anymore, and you have to fill out a form to request a trial version of Mirantis Fuel so it seems less suitable than the options listed above for individual researchers and students.
Video summary of all the options
Here is a YouTube video describing all the different options for Automated OpenStack Deployment.
OpenStack sandboxes online
Since my laptop computer did not have the memory and CPU requirements recommended by most of the OpenStack installers mentioned above, I tried to install OpenStack on Amazon AWS. I could not install it because AWS does not offer a way to run KVM inside an Amazon AWS instance.
Instead, I found two organizations that offer on-line access to an OpenStack system that you can experiment with.
TryStack is a cloud-based OpenStack sandbox created by Red Hat and the RDO community. The TryStack organization hosts a cluster of hardware running OpenStack that you may access to test OpenStack. It is intended to support developers but people who just want to try OpenStack may use it, too.
Ravello Systems offers OpenStack scenarios in their repository so it is an option for those wishing to experiment with OpenStack. The nodes run on Amazon AWS, but you access them through an account at Ravello Systems.
Ravello created a virtualization layer for AWS which enables nested virtualization in Amazon AWS instances. They use this technology to create a new cloud service on Amazon AWS that allows users to emulate complex networks of nodes running any software they install or create themselves.
Ravello uses proprietary software and costs money to use but, if I was going pay to use AWS anyway, using Ravello is just a small step further. Also, the costs are low for small use-cases like mine. For example, running a small OpenStack lab will cost less than a dollar an hour.