Ansible: “python2 yum module is needed for this module”
I am currently toying around with GlusterFS and I am using Ansible to deploy and configure my server.
Using the yum module, I wanted to install the Gluster server package like so:
- name: Install glusterfs-server package
yum:
name: glusterfs-server
state: latest
But when executing the playbook, I received the following error on executing this module:
simon@boxen:~/git/simon-ansible$ ansible-playbook install_gluster.yml
PLAY [Configure instance(s)]
[..]
TASK [gluster_role : Install gluster package] ******************************************************************************************************************
fatal: [10.140.10.31]: FAILED! => {"changed": false, "failed": true, "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this module"}
fatal: [10.140.10.30]: FAILED! => {"changed": false, "failed": true, "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this module"}
to retry, use: --limit @/home/simon/git/simon-ansible/install_gluster.retry
[..]
So I found out that there are multiple possibilities why this error can occur:
- Make sure the system you are provisioning is a RPM-based system. For example, executing the yum module on a Debian host will result in this error. Better use the apt module or the package module for generic package installation.
- Is the
yumpackage installed? Since I was using Fedora 26,yumwas not installed by default (dnfis the new default package manager).
Make sure you install the old yum package manager as well when using this Ansible module:dnf install yum.
In my case, after installing the yum package via dnf, I was able to use my playbook without any errors. By the way, if you are also using Ansible with Gluster, the gluster_volume module is pretty neat.