How To Use Ansible for Centos 5 / RHEL 5

If running your playbooks with old CentOS/Rhel 5 hosts, it might ends with something like this:

"module_stdout": " File \".AnsiballZ_setup.py\", line 72\r\n with open(args_path, 'rb') as f:\r\n ^\r\nSyntaxError: invalid syntax\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1

The main problem is the python version, which by default is python 2.4. and requires to use Ansible <=2.3

Install older Ansible version on your manager host

Make sure you have virtualenv installed.

# dnf list installed python3-virtualenv

Then proceed with creating and activating the environment and finally installing Ansible <2.4

# virtualenv ansible2.3-env
# . ansible2.3-env/bin/activate
# pip install 'ansible==2.3.3.0'

A Python version <=3.6 is required for installing Ansible 2.3. If it fails, use a Python version available below 3.7.

# virtualenv -p /usr/bin/python2 ansible2.3-env
# virtualenv -p /usr/bin/python3.6 ansible2.3-env

Install python-simplejson on CentOS 5

Package "python-simplejson" is required on the host machines.

# yum install python-simplejson

Run playbook by using Ansible 2.3 on manager host

Finally you can try running your playbooks, by first activating the virtualenv and executing ansible-playbook.

Activate ansible 2.3 environment

# source ansible2.3-env/bin/activate

Make sure you are using the correct version

# ansible --version 

Run your playbook

# ansible-playbook some_playbook.yml

Next Post Previous Post