Managing OpenStack with Open Source Tools


To manage an OpenStack cloud infrastructure, you need to manage the configuration of the individual cloud services and the orchestration between them. Because OpenStack is an open source product, other open source tools are a popular choice to install, manage, and run an OpenStack cloud.

There are many ways to evaluate open source tools. Some considerations include the language used or perhaps availability of a UI. Equally important is the health of the open source project’s community as measured by the diversity of contributors and the overall activity on the project.

This article will compare the community contributions of four of the top open source automation tools used with OpenStack: Ansible, Chef, Juju Charms, and Puppet.

What is OpenStack day 2 management?

Getting up and running with OpenStack is divided into three phases, known colloquially as:

Day 0: Plan

Day 1: Install and configure

Day 2: Operate, run and manage.

Some examples of ‘day 2’ operations are:

  • Responding to hardware failures

  • Scaling the cloud up (and down)

  • Compliance of the cloud workload

  • Planning for capacity requirements

  • Monitoring the cloud.

The tasks are often boring and crave automation to free up administrators to spend time on more creative work.  

Open source automation tools have modules to manage OpenStack and free up time for other tasks. Puppet is used in Red Hat OpenStack Platform Director, Mirantis Fuel and others. Chef is used by SUSE, the crowbar project, and others. Ansible is used by HPE Helion, Red Hat, Rackspace and others. Juju has its own configuration engine and collection of Charms to deploy and manage OpenStack.

Upstream activity

An open source project is driven by its community, leadership and contributors. Developers contribute code and documentation to a project. Why is it important to analyze contributions?

  • A high level of activity is a healthy indicator of the popularity and wide adoption of an open source project.

  • A diverse pool of contributors to a project means that no one vendor dominates a project and multiple people and organizations can vote on the direction a project should take.

  • An open source project with many contributors stands a better chance of succeeding and thriving.

For example, the Linux operating system, Apache web server and Mozilla/Firefox browser would not have succeeded without a large and diverse group of contributors.

The following is an analysis of contributions to the four OpenStack management projects, based on the number and diversity of each project’s commits: Ansible, Chef, Juju charms and Puppet.


  • An open source contributor is a developer who participates in the open source project.

  • An open source commit is a change to the source code or documentation that is accepted by the community)


Ansible simplifies the build of consistent environments without agents, daemons, or extra packages.  Developers build playbooks which target the cloud infrastructure. Designed for multi-tier deployments, Ansible models IT infrastructure by describing how systems inter-relate, rather than managing one system at a time. The metrics for Ansible (listed under “complementary” project types) are for all of Ansible, including all modules in core and extras. The Ansible project is not in the OpenStack Big Tent.

(Red Hat acquired Ansible in October 2015)




Chef is a client-server based orchestration management “infrastructure as code” for deploying applications, version control and configuration files. Chef is written in Ruby.  Chef “Cookbooks” can be written for deploying, security, monitoring etc. Chef requires an agent to be installed and pull configuration on a specified schedule.

Resources and references


Juju Charms

Juju is an application and service modelling tool that enables you to model, configure, deploy and manage applications and pre-configured services and OpenStack. Charms are sets of scripts for deploying and managing services. Charms declare interfaces that fit charms for other services, so relationships can be formed.




Puppet is a Declarative Language for “write once deploy many” packages for on-demand Openstack configuration and version control. Puppet is deployed in a client/server setup, or serverless mode where clients periodically poll the server for desired state, and send back status reports to the server (master). Puppet can provision, upgrade, and manage nodes  throughout their lifecycle. Puppet is based on Ruby, a custom DSL for writing manifests, utilizes ERB for templates. Puppet has Web UI and reporting tools



Analysis of the above contributions

Reviewing the above statistics the contributions by number of commits rank as follows (rounded numbers):

  • Ansible 25,200

  • Puppet 4,500

  • Juju Charms 1,160

  • Chef 470

A brief analysis of the contributors to each repository shows that

  • Canonical is a leader of the Charms repository with few contributions by other vendors and few independent contributors.

  • The Chef repository is dominated by IBM and x-ion with a few contributions by others and minimal by independents.

  • Puppet has a diverse contribution by Red Hat, Mirantis, a university, independents and a few other vendors.

  • The Ansible repository has a healthy contribution from independent contributors and vendors, Red Hat, HPE and Rackspace.


Day 2 operations are still dominated by manual and custom individual scripts devised by system administrators. Automation is needed by enterprises. Based on the above analysis, Ansible is a leading open source project with a high number contributions and a diverse community of contributions. Thus Ansible is a  well supported and popular open source tool to orchestrate and manage OpenStack.

Learn everything you need to know to create and manage private and public clouds with The Linux Foundation Training’s online, self-paced OpenStack Administration Fundamentals course.