Supported distros

Currently supported distros are:

  • Fedora 22, 23, 24, 25
  • RHEL 7.2 (best effort, deprecated)
  • RHEL 7.3
  • RHEL 7.4


Python 2.7 and virtualenv are required.



sudo or root access is needed to install prerequisites!

General requirements:

sudo yum install git gcc libffi-devel openssl-devel


Dependencies explained:

  • git - version control of this project
  • gcc - used for compilation of C backends for various libraries
  • libffi-devel - required by cffi
  • openssl-devel - required by cryptography

Closed Virtualenv is required to create clean python environment separated from system:

sudo yum install python-virtualenv

Ansible requires python binding for SELinux:

sudo yum install libselinux-python

otherwise it won’t be able to run modules with copy/file/template functions!


libselinux-python is in Prerequisites but doesn’t have a pip package. It must be installed on system level.


Ansible requires also libselinux-python installed on all nodes using copy/file/template functions. Without this step all such tasks will fail!


infrared shares dependencies with other OpenStack products and projects. Therefore there’s a high probability of conflicts with python dependencies, which would result either with infrared failure, or worse, with breaking dependencies for other OpenStack products. When working from source, virtualenv usage is recommended for avoiding corrupting of system packages:

virtualenv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install --upgrade setuptools


Use of latest ``pip`` is mandatory, especially on RHEL platform!


On Fedora 23 with EPEL repository enabled, RHBZ#1103566 also requires

dnf install redhat-rpm-config


Clone stable branch from Github repository:

git clone

Install infrared from source:

cd infrared
pip install .


For development work it’s better to install in editable mode and work with master branch:

pip install -e .

Bash completion

Bash completion script is in etc/bash_completion.d directory of git repository. To enable global completion copy this script to proper path in the system (/etc/bash_completion.d):

cp etc/bash_completion.d/infrared /etc/bash_completion.d/

Alternatively, just source it to enable completion temporarily:

source etc/bash_completion.d/infrared

When working in virtualenv, might be a good idea to add import of this script to the virtualenv activation one:

echo ". $(pwd)/etc/bash_completion/infrared" >> ${VIRTUAL_ENV}/bin/activate