Introduction
Ansible est un outil d'automatisation puissant utilisé par les administrateurs système et les développeurs pour simplifier des tâches complexes telles que la gestion de la configuration, le déploiement d'applications et l'orchestration. Cependant, lorsque vous travaillez avec Ansible, vous pouvez rencontrer l'erreur 'No module named 'ansible'', ce qui vous empêche d'utiliser l'outil efficacement.
Ce lab vous guidera à travers le processus de compréhension, de dépannage et de résolution de cette erreur courante. À la fin de ce tutoriel, vous disposerez d'un environnement Ansible fonctionnel et comprendrez comment éviter ce problème à l'avenir.
Diagnostiquer l'erreur 'No module named 'ansible''
L'erreur 'No module named 'ansible'' se produit lorsque Python ne peut pas localiser le module Ansible dans son chemin de recherche. Comprenons ce qui se passe et comment diagnostiquer le problème.
Comprendre les importations de modules Python
Lorsque vous exécutez une commande Ansible, Python essaie d'importer le module Ansible. Si Python ne trouve pas ce module, il génère l'erreur :
ImportError: No module named 'ansible'
Cela se produit parce que :
- Ansible n'est pas installé
- Ansible est installé mais pas dans l'environnement Python actuel
- Il y a un conflit entre différentes versions de Python
Vérification de l'état actuel de l'installation
Vérifions si Ansible est installé sur votre système :
ansible --version
Si Ansible n'est pas installé, vous verrez une erreur comme :
Command 'ansible' not found, but can be installed with:
sudo apt install ansible
Vérifions également quelle version de Python est utilisée :
python3 --version
Vous devriez voir une sortie similaire à :
Python 3.10.12
Maintenant, vérifiez si le module Ansible existe dans votre environnement Python :
python3 -c "import ansible; print('Ansible is installed')"
Si vous voyez le message d'erreur que nous dépannons :
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'ansible'
Cela confirme que Python ne peut pas trouver le module Ansible.
Vérification de l'état des paquets
Vérifions si le paquet Ansible est répertorié parmi les paquets installés :
pip3 list | grep ansible
Si rien n'est renvoyé, cela signifie qu'Ansible n'est pas installé via pip. Vérifions également s'il est installé via le gestionnaire de paquets du système :
dpkg -l | grep ansible
Maintenant que nous avons diagnostiqué le problème, nous pouvons procéder à l'installation correcte d'Ansible à l'étape suivante.
Installation correcte d'Ansible
Maintenant que nous avons diagnostiqué le problème, installons Ansible correctement. Nous allons explorer deux méthodes : l'utilisation du gestionnaire de paquets du système et l'utilisation de pip.
Méthode 1 : Installation d'Ansible via APT (Recommandé pour les débutants)
Le moyen le plus simple d'installer Ansible sur Ubuntu est d'utiliser le gestionnaire de paquets APT :
- Tout d'abord, mettons à jour les listes de paquets :
sudo apt update
- Installez Ansible :
sudo apt install -y ansible
Cette commande installera Ansible et toutes ses dépendances. Une fois l'installation terminée, vérifiez qu'Ansible est correctement installé :
ansible --version
Vous devriez voir une sortie similaire à :
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
Cela confirme qu'Ansible est installé et affiche des détails importants comme la version de Python et l'emplacement du module.
Méthode 2 : Installation d'Ansible via PIP
Si vous avez besoin d'une version spécifique d'Ansible ou si vous souhaitez l'installer dans un environnement virtuel, vous pouvez utiliser pip :
pip3 install ansible
Vérifiez l'installation :
ansible --version
Tester si l'erreur est résolue
Maintenant qu'Ansible est installé, vérifions que l'erreur est résolue en essayant d'importer directement le module Ansible :
python3 -c "import ansible; print('Ansible is installed successfully')"
Vous devriez voir :
Ansible is installed successfully
Cela indique que Python peut désormais trouver et importer le module Ansible, résolvant ainsi notre erreur d'origine.
Comprendre où Ansible est installé
Pour mieux comprendre où Ansible est installé, exécutez :
which ansible
Cela affichera le chemin vers l'exécutable Ansible, généralement :
/usr/bin/ansible
Et pour voir où se trouve le module Python :
python3 -c "import ansible; print(ansible.__file__)"
Cela affichera quelque chose comme :
/usr/lib/python3/dist-packages/ansible/__init__.py
Maintenant que nous avons installé Ansible avec succès, passons à la création d'une configuration de base pour vérifier que tout fonctionne correctement.
Création d'une configuration Ansible de base
Maintenant qu'Ansible est correctement installé, créons une configuration de base pour nous assurer que tout fonctionne correctement. Nous allons créer un simple fichier d'inventaire et un playbook pour tester notre installation Ansible.
Création d'un fichier d'inventaire
Le fichier d'inventaire indique à Ansible quels hôtes gérer. Pour notre test, nous allons créer un simple fichier d'inventaire avec localhost comme cible :
- Naviguez vers le répertoire du projet :
cd ~/project
- Créez un nouveau répertoire pour nos fichiers Ansible :
mkdir ansible-test
cd ansible-test
- Créez un fichier d'inventaire :
echo "localhost ansible_connection=local" > inventory
Ce fichier d'inventaire spécifie que nous voulons gérer la machine locale en utilisant une connexion locale (sans SSH).
Création d'un Playbook simple
Maintenant, créons un playbook simple pour tester notre installation Ansible :
- Créez un fichier nommé
test-playbook.yml:
touch test-playbook.yml
- Ouvrez le fichier dans l'éditeur et ajoutez le contenu suivant :
---
- 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
Ce playbook contient trois tâches :
- Afficher un message pour vérifier qu'Ansible fonctionne
- Exécuter une commande pour obtenir la version de Python
- Afficher la version de Python
Exécution du Playbook
Maintenant, exécutons le playbook pour tester notre installation Ansible :
ansible-playbook -i inventory test-playbook.yml
Vous devriez voir une sortie similaire à :
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
Cela confirme que :
- Ansible fonctionne correctement
- L'erreur 'No module named ansible' a été résolue
- Nous pouvons exécuter des playbooks Ansible avec succès
Comprendre la configuration d'Ansible
Ansible utilise un fichier de configuration pour déterminer son comportement. Voyons où Ansible recherche sa configuration :
ansible-config dump --only-changed
Cela vous montrera les paramètres de configuration qui diffèrent des valeurs par défaut.
Pour voir la configuration effective, exécutez :
ansible --version
Cela affiche l'emplacement du fichier de configuration, les chemins de recherche des modules et d'autres détails importants.
Félicitations ! Vous avez réussi à :
- Diagnostiquer l'erreur 'No module named ansible'
- Installer Ansible correctement
- Créer et exécuter un playbook Ansible de base
Cela confirme que l'erreur est résolue et que votre environnement Ansible fonctionne correctement.
Résumé
Dans ce lab, vous avez appris à diagnostiquer et à résoudre l'erreur 'No module named 'ansible'', qui est un problème courant lors de l'utilisation d'Ansible. Vous avez acquis des compétences précieuses en :
- Comprenant comment les importations de modules Python fonctionnent avec Ansible
- Diagnostiquant les problèmes d'installation avec Ansible
- Installant Ansible correctement en utilisant différentes méthodes
- Créant une configuration Ansible de base
- Vérifiant votre environnement Ansible avec un playbook simple
Ces compétences fournissent une base solide pour travailler avec Ansible dans des scénarios d'automatisation plus complexes. Rappelez-vous que le maintien de l'environnement Python correct est crucial pour le bon fonctionnement d'Ansible, et vous avez maintenant les connaissances nécessaires pour dépanner et résoudre les problèmes d'installation courants.
Lorsque vous rencontrerez des erreurs similaires liées aux modules à l'avenir, vous pourrez appliquer la même approche diagnostique pour identifier et résoudre efficacement la cause première.


