Solum is an OpenStack related project that is designed to provide an application lifecycle framework over the top of the IaaS cloud. In this context Solum is "related" to OpenStack in that it is not a "core" or "incubated" project. There are many ecosystem projects that leverage and extend OpenStack, at this point Solum is one of these.

From the description at GitHub, Solum is "natively designed for OpenStack clouds and leverages numerous OpenStack projects, including Heat, Keystone, Nova, Trove, and more. We value vendor neutrality, open design and collaboration, and leveraging existing solutions where possible. One example is our use of Docker for deployment of containers. Multiple language run-time environments will be supported with a modular "language pack" solution so you can easily run applications written in any language of your choice."

When the project was introduced in the Havana development cycle there was a fair bit of controversy; everything from "this is not within the OpenStack IaaS charter" to "why not just embrace Cloud Foundry (another open source project) for application orchestration and deployment?". There was lots of discussion at the IceHouse Design Summit, and the key argument for the project was that it utilizes and makes best use of the native OpenStack technologies. It's sponsors are clear that Solum is just another way (not the only way) to deploy and manage your applications on OpenStack.

So let's stand up Solum on the CenturyLink Cloud!

If you looked at the "OpenStack on the CenturyLink Cloud" tutorial you will find this is very similar. Actually, the Solum setup is a modified and customized DevStack, with most of the heavy lifting being done under the covers and automatically.

OpenStack is one of the fastest growing open source projects being worked on today. As a cloud IaaS solution it has many aspects and moving parts, which can make even getting a demo version installed a difficult task. It is important to realize that in order to run OpenStack Compute (Nova) effectively we need to give it resources... Nova is a cloud controller that will allow us to create and run multiple VM's so our CenturyLink Cloud Server needs to be pretty large. Here is the CenturyLink Cloud Server that I set up to run OpenStack + Docker + Solum:


In addition to Nova we will be installing the following OpenStack services (click for larger view):


A key element of both the build and runtime of Solum is Docker and associated container technologies. In order to install Solum we first need to install Docker on our server.

Update Ubuntu Linux in preparation for Docker Installation

The version of Ubuntu that we installed while creating the server is 12.04 (Precise LTS 64-bit). This particular version of Ubuntu ships with a version 3.2 Linux kernel. In order to get the correct version of LXC that Docker requires we need to update the kernel from 3.2 to version 3.8. The Ubuntu folks at Canonical have made this easy for us by providing backported versions of new kernels. We will be updating Ubuntu Precise to Ubuntu Raring, at the same time will be getting built-in kernel support for AUFS.

# Make sure we are pointed to the correct repositories
$ sudo apt-get update
# Install the 3.8 kernel
$ sudo apt-get install linux-image-generic-lts-raring
# Reboot and then login again
$ sudo reboot

Install Docker

Once you have the base operating system updated and ready to go it is a pretty straight-forward process to install Docker. [preformatted-text]# Add the Docker repository key to the local keychain $ sudo apt-key adv --keyserver --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 # Add the Docker repository to the list of apt sources $ sudo sh -c "echo deb docker main > /etc/apt/sources.list.d/docker.list" # Update the apt files $ sudo apt-get update # Install Docker $ sudo apt-get install lxc-docker [/preformatted-text]

And that is all that is necessary to install Docker and we move on to installing Solum.

Install Solum for OpenStack

First clone the Solum code repo:

$ git clone

And, run the Solum install script:

$ export SOLUM_DIR="./solum"
$ ./sh ${SOLUM_DIR}/contrib/devstack/

This is an extensive install script (as you can imagine) and you will see a bunch of stuff scrolling by on the screen. It is OK to let the system generate all the default passwords. The Horizon Dashboard is located at the public IP for your CenturyLink Cloud Server. Point your browser to this IP (in my case this is and you will be prompted to login to your newly installed and running OpenStack Cloud with Solum. Use 'admin' as the user and 'password' as the password and you are now able to fully administer and play with your OpenStack Solum project!

This is just the start of developing and demoing Solum on OpenStack on the CenturyLink Cloud. In future tutorials we will demonstrate how to describe and run Solum as a full featured, native PaaS for OpenStack.