Python interpreter not found

Mijn Rancher Cluster bevat nodes die allen draaien onder RancherOS. Nu zou ik die met Ansible playbooks willen beheren maar bij een standaard installatie van RancherOS krijg ik de foutmelding dat python niet gevonden kan worden en dat is een component dat Ansible nodig heeft om op de nodes de playbooks te kunnen uitvoeren.

$ ansible -m ping speeltuin-cp01
[WARNING]: No python interpreters found for host speeltuin-cp01 (tried ['/usr/bin/python', 'python3.7', 'python3.6', 'python3.5', 'python2.7', 'python2.6',
'/usr/libexec/platform-python', '/usr/bin/python3', 'python'])
speeltuin-cp01 | FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "module_stderr": "Shared connection to 192.168.178.155 closed.\r\n",
    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n",
    "msg": "The module failed to execute correctly, you probably need to set the interpreter.\nSee stdout/stderr for the exact error",
    "rc": 127
}

Hier is echter een simpele oplossing voor…

Lees verder

[Ansible] Python interpreter not found

Mijn Rancher Cluster bevat nodes die allen draaien onder RancherOS. Nu zou ik die met Ansible playbooks willen beheren maar bij een standaard installatie van RancherOS krijg ik de foutmelding dat python niet gevonden kan worden en dat is een component dat Ansible nodig heeft om op de nodes de playbooks te kunnen uitvoeren.

$ ansible -m ping speeltuin-cp01
[WARNING]: No python interpreters found for host speeltuin-cp01 (tried ['/usr/bin/python', 'python3.7', 'python3.6', 'python3.5', 'python2.7', 'python2.6',
'/usr/libexec/platform-python', '/usr/bin/python3', 'python'])
speeltuin-cp01 | FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "module_stderr": "Shared connection to 192.168.178.155 closed.\r\n",
    "module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n",
    "msg": "The module failed to execute correctly, you probably need to set the interpreter.\nSee stdout/stderr for the exact error",
    "rc": 127
}

Hier is echter een simpele oplossing voor…

Lees verder

Zabbix instellen met Ansible inventory

We kunnen natuurlijk inloggen op de node en handmatig Zabbix-Agent installeren maar als we de Ansible Inventory als leidraad aanhouden voor onze nodes dan is deze dus bepalend om de agent te installeren. We kunnen deze dan tevens als ‘desired state’ beschouwen en de playbooks periodiek laten uitvoeren, hetzij door een crontab job, hetzij door Ansible AWX (Tower). Lees hier meer…

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
sudo yum install dnf

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 }}