Ansible geeft foutmelding op yum commando

The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.

dnf is de nieuwe Package Manager voor rpm. Althans, dat beweren de berichten sinds dnf is toegevoegd aan Fedora (in 2014) maar sinds Fedora 26 worden er serieuze poging gedaan om yum te vervangen. In CentOS 7.5 zal het wellicht de standaard Package Manager worden.

Ansible heeft moeite met de yum-module als b.v. in CentOS python versie 2.7 en versie 3.0 aanwezig is. Ansible gebruikt python v3 en yum gebruikt puthon v2.7.

Helaas is dnf niet aanwezig in de huidige repositories van CentOS 7 en moeten we deze, samen met de afhankelijkheden, handmatig installeren:

sudo yum install centos-release-yum4
sudo yum install yum4
sudo yum4 install dnf-plugins-core

Vervolgens kan nu in je ansible play, dnf gebruikt worden i.p.v. yum!

Mocht hierna echter, de output van Ansible nog steeds een foutmelding geven:

'python2-dnf' is not installed, but it is required for the Ansible dnf module.

Dan kun je het ansible playbook alsvolgt wijzigen:

- name: Installeer een aantal packages
  dnf:
    name: "{{ item }}"
    state: present
  with_items: "{{ packages required }}

naar:

- name: Installeer een aantal packages
  package:
    name: "{{ item }}"
    state: present
  with_items: "{{ packages required }}