So beheben Sie den Fehler 'No module named 'ansible'' in Ansible

AnsibleAnsibleBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ansible ist ein leistungsstarkes Automatisierungswerkzeug, das von Systemadministratoren und Entwicklern verwendet wird, um komplexe Aufgaben wie Konfigurationsmanagement, Anwendungsbereitstellung und Orchestrierung zu vereinfachen. Bei der Arbeit mit Ansible kann jedoch der Fehler 'No module named 'ansible'' auftreten, der Sie daran hindert, das Werkzeug effektiv zu nutzen.

Dieses Lab führt Sie durch den Prozess des Verstehens, der Fehlerbehebung und der Lösung dieses häufigen Fehlers. Am Ende dieses Tutorials verfügen Sie über eine richtig funktionierende Ansible-Umgebung und verstehen, wie Sie dieses Problem in Zukunft vermeiden können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/AnsibleSetupandConfigurationGroup(["Ansible Setup and Configuration"]) ansible(("Ansible")) -.-> ansible/ModuleOperationsGroup(["Module Operations"]) ansible(("Ansible")) -.-> ansible/PlaybookEssentialsGroup(["Playbook Essentials"]) ansible/AnsibleSetupandConfigurationGroup -.-> ansible/install("Ansible Setup") ansible/ModuleOperationsGroup -.-> ansible/apt("Package Manager") ansible/ModuleOperationsGroup -.-> ansible/command("Execute Commands") ansible/ModuleOperationsGroup -.-> ansible/debug("Test Output") ansible/PlaybookEssentialsGroup -.-> ansible/playbook("Execute Playbook") subgraph Lab Skills ansible/install -.-> lab-417297{{"So beheben Sie den Fehler 'No module named 'ansible'' in Ansible"}} ansible/apt -.-> lab-417297{{"So beheben Sie den Fehler 'No module named 'ansible'' in Ansible"}} ansible/command -.-> lab-417297{{"So beheben Sie den Fehler 'No module named 'ansible'' in Ansible"}} ansible/debug -.-> lab-417297{{"So beheben Sie den Fehler 'No module named 'ansible'' in Ansible"}} ansible/playbook -.-> lab-417297{{"So beheben Sie den Fehler 'No module named 'ansible'' in Ansible"}} end

Diagnose des Fehlers 'No module named 'ansible''

Der Fehler 'No module named 'ansible'' tritt auf, wenn Python das Ansible-Modul in seinem Suchpfad nicht finden kann. Lassen Sie uns verstehen, was passiert und wie man das Problem diagnostiziert.

Verstehen von Python-Modulimporten

Wenn Sie einen Ansible-Befehl ausführen, versucht Python, das Ansible-Modul zu importieren. Wenn Python dieses Modul nicht finden kann, generiert es den Fehler:

ImportError: No module named 'ansible'

Dies geschieht, weil:

  1. Ansible nicht installiert ist
  2. Ansible installiert ist, sich aber nicht in der aktuellen Python-Umgebung befindet
  3. Es einen Konflikt zwischen verschiedenen Python-Versionen gibt

Überprüfen des aktuellen Installationsstatus

Lassen Sie uns sehen, ob Ansible auf Ihrem System installiert ist:

ansible --version

Wenn Ansible nicht installiert ist, sehen Sie eine Fehlermeldung wie:

Command 'ansible' not found, but can be installed with:
sudo apt install ansible

Lassen Sie uns auch überprüfen, welche Python-Version verwendet wird:

python3 --version

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Python 3.10.12

Überprüfen Sie nun, ob das Ansible-Modul in Ihrer Python-Umgebung existiert:

python3 -c "import ansible; print('Ansible is installed')"

Wenn Sie die Fehlermeldung sehen, die wir beheben möchten:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'ansible'

Dies bestätigt, dass Python das Ansible-Modul nicht finden kann.

Überprüfen des Paketstatus

Lassen Sie uns überprüfen, ob das Ansible-Paket unter den installierten Paketen aufgeführt ist:

pip3 list | grep ansible

Wenn nichts zurückgegeben wird, bedeutet dies, dass Ansible nicht über pip installiert wurde. Lassen Sie uns auch überprüfen, ob es über den System-Paketmanager installiert wurde:

dpkg -l | grep ansible

Nachdem wir das Problem diagnostiziert haben, können wir im nächsten Schritt mit der korrekten Installation von Ansible fortfahren.

Korrekte Installation von Ansible

Nachdem wir das Problem diagnostiziert haben, installieren wir Ansible jetzt richtig. Wir werden zwei Methoden untersuchen: die Verwendung des System-Paketmanagers und die Verwendung von pip.

Methode 1: Installation von Ansible über APT (Empfohlen für Anfänger)

Der einfachste Weg, Ansible unter Ubuntu zu installieren, ist über den APT-Paketmanager:

  1. Zuerst aktualisieren wir die Paketlisten:
sudo apt update
  1. Installieren Sie Ansible:
sudo apt install -y ansible

Dieser Befehl installiert Ansible und alle seine Abhängigkeiten. Überprüfen Sie nach Abschluss der Installation, ob Ansible korrekt installiert wurde:

ansible --version

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

ansible [core 2.12.0]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/labex/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
  jinja version = 3.0.3
  libyaml = True

Dies bestätigt, dass Ansible installiert ist und wichtige Details wie die Python-Version und den Modul-Speicherort anzeigt.

Methode 2: Installation von Ansible über PIP

Wenn Sie eine bestimmte Version von Ansible benötigen oder es innerhalb einer virtuellen Umgebung installieren möchten, können Sie pip verwenden:

pip3 install ansible

Überprüfen Sie die Installation:

ansible --version

Testen, ob der Fehler behoben wurde

Nachdem Ansible installiert ist, überprüfen wir, ob der Fehler behoben wurde, indem wir versuchen, das Ansible-Modul direkt zu importieren:

python3 -c "import ansible; print('Ansible is installed successfully')"

Sie sollten sehen:

Ansible is installed successfully

Dies zeigt an, dass Python jetzt das Ansible-Modul finden und importieren kann, wodurch unser ursprünglicher Fehler behoben wird.

Verstehen, wo Ansible installiert ist

Um besser zu verstehen, wo Ansible installiert ist, führen Sie aus:

which ansible

Dies zeigt den Pfad zur Ansible-ausführbaren Datei an, typischerweise:

/usr/bin/ansible

Und um zu sehen, wo sich das Python-Modul befindet:

python3 -c "import ansible; print(ansible.__file__)"

Dies zeigt etwas wie:

/usr/lib/python3/dist-packages/ansible/__init__.py

Nachdem wir Ansible erfolgreich installiert haben, fahren wir mit der Erstellung einer grundlegenden Konfiguration fort, um zu überprüfen, ob alles ordnungsgemäß funktioniert.

Erstellen einer grundlegenden Ansible-Konfiguration

Nachdem Ansible korrekt installiert wurde, erstellen wir jetzt eine grundlegende Konfiguration, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Wir erstellen eine einfache Inventory-Datei und ein Playbook, um unsere Ansible-Installation zu testen.

Erstellen einer Inventory-Datei

Die Inventory-Datei teilt Ansible mit, welche Hosts verwaltet werden sollen. Für unseren Test erstellen wir eine einfache Inventory-Datei mit localhost als Ziel:

  1. Navigieren Sie zum Projektverzeichnis:
cd ~/project
  1. Erstellen Sie ein neues Verzeichnis für unsere Ansible-Dateien:
mkdir ansible-test
cd ansible-test
  1. Erstellen Sie eine Inventory-Datei:
echo "localhost ansible_connection=local" > inventory

Diese Inventory-Datei gibt an, dass wir den lokalen Rechner über eine lokale Verbindung (ohne SSH) verwalten möchten.

Erstellen eines einfachen Playbooks

Erstellen wir nun ein einfaches Playbook, um unsere Ansible-Installation zu testen:

  1. Erstellen Sie eine Datei namens test-playbook.yml:
touch test-playbook.yml
  1. Öffnen Sie die Datei im Editor und fügen Sie den folgenden Inhalt hinzu:
---
- name: Test Ansible Installation
  hosts: localhost
  gather_facts: no

  tasks:
    - name: Print a message
      debug:
        msg: "Ansible is working correctly!"

    - name: Get Python version
      command: python3 --version
      register: python_version

    - name: Display Python version
      debug:
        var: python_version.stdout

Dieses Playbook enthält drei Aufgaben:

  • Drucken Sie eine Nachricht, um zu überprüfen, ob Ansible funktioniert
  • Führen Sie einen Befehl aus, um die Python-Version abzurufen
  • Zeigen Sie die Python-Version an

Ausführen des Playbooks

Führen wir nun das Playbook aus, um unsere Ansible-Installation zu testen:

ansible-playbook -i inventory test-playbook.yml

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

PLAY [Test Ansible Installation] *******************************

TASK [Print a message] *****************************************
ok: [localhost] => {
    "msg": "Ansible is working correctly!"
}

TASK [Get Python version] **************************************
changed: [localhost]

TASK [Display Python version] **********************************
ok: [localhost] => {
    "python_version.stdout": "Python 3.10.12"
}

PLAY RECAP ****************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Dies bestätigt, dass:

  1. Ansible korrekt funktioniert
  2. Der Fehler 'No module named ansible' behoben wurde
  3. Wir Ansible-Playbooks erfolgreich ausführen können

Verstehen der Ansible-Konfiguration

Ansible verwendet eine Konfigurationsdatei, um sein Verhalten zu bestimmen. Sehen wir uns an, wo Ansible nach seiner Konfiguration sucht:

ansible-config dump --only-changed

Dies zeigt Ihnen die Konfigurationseinstellungen, die sich von den Standardwerten unterscheiden.

Um die effektive Konfiguration anzuzeigen, führen Sie aus:

ansible --version

Dies zeigt den Speicherort der Konfigurationsdatei, die Modulsuchpfade und andere wichtige Details.

Herzlichen Glückwunsch! Sie haben erfolgreich:

  1. Den Fehler 'No module named ansible' diagnostiziert
  2. Ansible korrekt installiert
  3. Ein grundlegendes Ansible-Playbook erstellt und ausgeführt

Dies bestätigt, dass der Fehler behoben wurde und Ihre Ansible-Umgebung ordnungsgemäß funktioniert.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man den Fehler 'No module named 'ansible'' diagnostiziert und behebt, ein häufiges Problem bei der Arbeit mit Ansible. Sie haben wertvolle Fähigkeiten erworben in:

  • Verstehen, wie Python-Modulimporte mit Ansible funktionieren
  • Diagnostizieren von Installationsproblemen mit Ansible
  • Korrekte Installation von Ansible mit verschiedenen Methoden
  • Erstellen einer grundlegenden Ansible-Konfiguration
  • Überprüfen Ihrer Ansible-Umgebung mit einem einfachen Playbook

Diese Fähigkeiten bieten eine solide Grundlage für die Arbeit mit Ansible in komplexeren Automatisierungsszenarien. Denken Sie daran, dass die Aufrechterhaltung der korrekten Python-Umgebung entscheidend für die ordnungsgemäße Funktion von Ansible ist, und jetzt verfügen Sie über das Wissen, um häufige Installationsprobleme zu beheben und zu lösen.

Wenn Sie in Zukunft auf ähnliche modulbezogene Fehler stoßen, können Sie denselben diagnostischen Ansatz anwenden, um die Ursache effizient zu identifizieren und zu beheben.

OSZAR »