Lead Image © Tom Wang, Fotolia.com

Lead Image © Tom Wang, Fotolia.com

OpenStack installation with the Packstack installer

Living in the Clouds

Article from ADMIN 46/2018
At first sight, an OpenStack installation might seem like rocket science, but you can launch a fully functional cloud environment with minimal effort in a relatively short time with the Packstack automation tool.

For several years, cloud computing in the global IT market has become common, both in corporate infrastructure and among private users. In medium and large companies, it replaces a not very flexible, poorly scalable, and often expensive computer infrastructure, whereas it allows small businesses, startups, and private users to transfer the entire burden of providing IT services to an external supplier.

In addition to the division into private and public clouds, you can divide cloud computing according to the types of services offered. In this category, two types of clouds lead: Infrastructure as a Service (IaaS; e.g., OpenStack and Amazon Web Services), which provides the entire virtual infrastructure, including servers, mass storage, and virtual networks, and Storage as a Service (SaaS; e.g., Dropbox, Hightail), which delivers storage space to clients.

The ways to install an OpenStack cloud range from a tedious step-by-step installation of individual OpenStack services to the use of automated installation scripts, such as Packstack or TripleO (OpenStack on OpenStack), which significantly accelerates cloud installations. Whereas TripleO is used mainly in installations for production environments, Packstack [1] is used for quickly setting up development or demonstration cloud environments.

In this article, I present an example of an IaaS-type RDO [2] OpenStack Pike [3] installation using the Packstack installer.


A typical OpenStack environment comprises a cloud controller (Controller node) that runs most of the cloud services, including network services (Neutron), and at least one Compute node (hypervisor) controlling the operation of virtual machines, called instances. The most common reason for integrating a cloud controller with a network node on the same server is the small size of the cloud and access to a relatively efficient server that is able to handle a large number of OpenStack components.

Cloud computing is a system of services distributed between its constituent nodes. The most important OpenStack services include:

  1. Horizon, a web browser user interface (dashboard) based on Python Django for creating and managing instances (OpenStack virtual machines).
  2. Keystone, an authentication and authorization framework based on the MariaDB database.
  3. Neutron, a network connectivity service based on Open vSwitch (OVS) and a Modular Layer 2 (ML2) plugin.
  4. Cinder, persistent block storage for OpenStack instances with support for multiple back-end devices.
  5. Nova, an instances management system based on a Linux kernel-based virtual machine (KVM) hypervisor.
  6. Glance, a registry for instance images.
  7. Swift, file storage for the cloud.
  8. Telemetry/Ceilometer, metering engines for collecting billable data and analysis.
  9. Heat, an orchestration service for template-based instance deployment.

For the test installation, I use three nodes: a Controller node and two Compute nodes (Figure 1). Each node was equipped with a 2.5GHz (4-core) CPU, 16GB of RAM, a 160GB hard drive, two network interface cards (NIC1, provider_net, eth0; NIC2, internal_net, eth1), and a CentOS 7 64-bit operating system. The NIC1 IP addresses for the Controller node and for Compute nodes 1 and 2 were,, and, respectively.

Figure 1: The example OpenStack setup with one Controller and two Compute nodes.


In the following procedure, I present OpenStack deployments with flat and vlan network types. VLANs are used for tenant internal communication (internal_net) between instances logically running in the same tenant, but physically placed on the separate Compute nodes. Therefore, to allow VLAN traffic between the Compute nodes, VLAN tagging should be enabled on the network switch connecting them.

Before starting the Packstack deployment, the eth0 network interface should have a static IP configuration, with config files for the eth0 and eth1 interfaces; that is, ifcfg-eth0 and ifcfg-eth1 should exist on all nodes in the /etc/sysconfig/network-scripts/ directory and should be in state UP. The NetworkManager service should be stopped and disabled on all OpenStack nodes.

Next, enter the update command on all nodes

[root@controller ~]# yum update
[root@compute1 ~]# yum update
[root@compute2 ~]# yum update

to update OpenStack.

Packstack Installation

On CentOS 7, the Extras repo, which is enabled by default, provides the RPM that enables the OpenStack Pike repository:

[root@controller ~]# yum install centos-release-openstack-pike

Once again, you need to update the Controller node to fetch and install the newest packages from the Pike RDO (RPM distribution of OpenStack) repo:

[root@controller ~]# yum updater

Once you have the OpenStack Pike repository enabled, enter

[root@controller ~]# yum install openstack-packstack

to install the Packstack RPM package from this repository.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.