Installer Ansible sur Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez comment installer Ansible Core sur un système Red Hat Enterprise Linux (RHEL). Ansible est un outil d'automatisation puissant qui vous permet de gérer et de configurer des systèmes, de déployer des applications et d'orchestrer des flux de travail informatiques complexes.

Vous utiliserez le gestionnaire de paquets dnf avec des privilèges sudo pour installer le paquet ansible-core, qui fournit le moteur Ansible de base et les outils en ligne de commande. Après l'installation, vous vérifierez qu'Ansible fonctionne correctement en vérifiant sa version et en exécutant des commandes de base.

C'est une compétence fondamentale pour les administrateurs système et les ingénieurs DevOps travaillant avec des systèmes Red Hat Enterprise Linux.

Installer Ansible Core avec dnf

Dans cette étape, vous allez installer le paquet ansible-core en utilisant le gestionnaire de paquets dnf. Ansible Core fournit le moteur Ansible essentiel, y compris ansible, ansible-playbook, et d'autres outils de ligne de commande de base nécessaires aux tâches d'automatisation.

Le gestionnaire de paquets dnf (Dandified YUM) est l'outil standard pour la gestion des paquets logiciels sur Red Hat Enterprise Linux. Étant donné que l'installation de logiciels nécessite des privilèges administratifs, vous devez utiliser la commande sudo.

Exécutez la commande suivante pour installer Ansible Core avec confirmation automatique :

sudo dnf install ansible-core -y

L'option -y répond automatiquement "yes" à toutes les invites, rendant l'installation non interactive. Le système téléchargera et installera ansible-core ainsi que ses dépendances Python, notamment Jinja2 pour le templating et PyYAML pour le traitement YAML.

Vous devriez voir une sortie similaire à celle-ci, montrant la résolution des paquets et la progression de l'installation :

Updating Subscription Management repositories.
Last metadata expiration check: ...
Dependencies resolved.
================================================================================
 Package                  Arch   Version                Repository         Size
================================================================================
Installing:
 ansible-core             noarch 2.16.x-x.el9            rhel-9-appstream   xx M
Installing dependencies:
 python3-jinja2           noarch x.x.x-x.el9              rhel-9-appstream   xxx k
 python3-yaml             x86_64 x.x.x-x.el9              rhel-9-appstream   xxx k
 ...

Transaction Summary
================================================================================
Install  XX Packages

Complete!

Vérifier l'installation d'Ansible

Maintenant que vous avez installé Ansible Core, vérifions que l'installation a réussi en vérifiant la version et en confirmant que les outils de ligne de commande essentiels sont disponibles.

Tout d'abord, vérifiez la version d'Ansible en exécutant :

ansible --version

Cette commande affiche des informations détaillées sur votre installation d'Ansible, y compris la version du core, la version de Python et les emplacements des différents composants. Vous devriez voir une sortie similaire à celle-ci :

ansible [core 2.14.18]
  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.9/site-packages/ansible
  ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.21 (main, Feb 10 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True

Comprenons ce que chaque ligne signifie :

  • ansible [core 2.14.18] : Affiche la version installée d'Ansible Core
  • config file : Indique le fichier de configuration principal d'Ansible qui contient les paramètres par défaut
  • configured module search path : Répertoires où Ansible recherche les modules personnalisés
  • ansible python module location : Où le code Python d'Ansible Core est installé
  • ansible collection location : Répertoires où les collections Ansible (modules et plugins empaquetés) sont stockées
  • executable location : L'emplacement réel du binaire de la commande ansible
  • python version : La version de l'interpréteur Python qu'Ansible utilise
  • jinja version : La version du moteur de templating utilisé par Ansible pour le contenu dynamique
  • libyaml = True : Confirme que l'analyseur YAML rapide est disponible pour de meilleures performances

Cela confirme qu'Ansible est correctement installé et prêt à être utilisé. Ensuite, vérifions également que la commande ansible-playbook est disponible :

ansible-playbook --version

Vous devriez voir des informations de version similaires pour l'outil ansible-playbook, qui est essentiel pour exécuter les playbooks Ansible.

Tester Ansible avec une commande simple

Dans cette étape, vous allez tester votre installation d'Ansible en exécutant une commande simple sur le système local. Accédez au répertoire du projet et utilisez le fichier d'inventaire préconfiguré pour exécuter une commande ad-hoc Ansible.

Naviguez vers le répertoire du projet et testez la fonctionnalité de ping de base :

cd /home/labex/project
ansible localhost -m ping

Le module ping n'envoie pas réellement de paquets ICMP ; au lieu de cela, il vérifie qu'Ansible peut se connecter à la cible et exécuter du code Python. Une réponse réussie ressemblera à ceci :

localhost | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Décomposons cette sortie :

  • localhost | SUCCESS : Indique que la commande s'est exécutée avec succès sur la cible localhost
  • ansible_facts : Contient les informations système découvertes lors de l'exécution
  • discovered_interpreter_python : Le chemin de l'interpréteur Python qu'Ansible a trouvé et utilisera
  • changed: false : Indique qu'aucun changement n'a été apporté au système (ping est en lecture seule)
  • ping: "pong" : La réponse classique confirmant la connectivité d'Ansible

La réponse "pong" confirme qu'Ansible fonctionne correctement et peut communiquer avec le système cible.

Testons également la collecte d'informations système en utilisant le module setup :

ansible localhost -m setup -a "filter=ansible_distribution*"

Cette commande utilise le module setup pour collecter les faits système, en filtrant spécifiquement les informations de distribution. Vous devriez voir une sortie contenant des détails sur votre système Red Hat Enterprise Linux :

localhost | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "RedHat",
        "ansible_distribution_file_parsed": true,
        "ansible_distribution_file_path": "/etc/redhat-release",
        "ansible_distribution_file_search_string": "Red Hat",
        "ansible_distribution_file_variety": "RedHat",
        "ansible_distribution_major_version": "9",
        "ansible_distribution_release": "Plow",
        "ansible_distribution_version": "9.6",
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false
}

Comprendre la sortie des faits système :

  • ansible_distribution : Le nom de la distribution Linux (RedHat)
  • ansible_distribution_file_parsed : Si Ansible a réussi à lire le fichier de distribution
  • ansible_distribution_file_path : Le fichier qui contient les informations de distribution
  • ansible_distribution_file_search_string : Le motif de texte utilisé pour identifier la distribution
  • ansible_distribution_file_variety : La famille de distribution (famille RedHat)
  • ansible_distribution_major_version : Le numéro de version majeure (9)
  • ansible_distribution_release : Le nom de code de la version (Plow)
  • ansible_distribution_version : Le numéro de version complet (9.6)
  • discovered_interpreter_python : Interpréteur Python découvert par Ansible

Cela confirme qu'Ansible peut collecter avec succès les informations système de l'hôte cible, ce qui est essentiel pour créer une automatisation conditionnelle basée sur les caractéristiques du système.

Explorer les modules Ansible disponibles

Ansible est livré avec des centaines de modules intégrés pour diverses tâches d'automatisation. Explorons certains des modules disponibles pour comprendre quelles capacités sont immédiatement disponibles après l'installation.

Pour voir une liste des modules disponibles, exécutez :

ansible-doc -l | head -20

La commande ansible-doc -l liste tous les modules disponibles, et l'utilisation de head -20 affiche les 20 premiers modules. Cela vous donne une idée des vastes capacités d'automatisation disponibles avec Ansible. Vous verrez une sortie similaire à :

ansible.builtin.add_host               Add a host (and alternatively a grou...
ansible.builtin.apt                    Manages apt-packages
ansible.builtin.apt_key                Add or remove an apt key
ansible.builtin.apt_repository         Add and remove APT repositories
ansible.builtin.assemble               Assemble configuration files from fr...
ansible.builtin.assert                 Asserts given expressions are true
ansible.builtin.async_status           Obtain status of asynchronous task
ansible.builtin.blockinfile            Insert/update/remove a text block su...
ansible.builtin.command                Execute commands on targets
ansible.builtin.copy                   Copy files to remote locations
ansible.builtin.cron                   Manage cron.d and crontab entries
ansible.builtin.debconf                Configure a .deb package
ansible.builtin.debug                  Print statements during execution
ansible.builtin.dnf                    Manages packages with the `dnf' pack...
ansible.builtin.dpkg_selections        Dpkg package selection selections
ansible.builtin.expect                 Executes a command and responds to p...
ansible.builtin.fail                   Fail with custom message
ansible.builtin.fetch                  Fetch files from remote nodes
ansible.builtin.file                   Manage files and file properties
ansible.builtin.find                   Return a list of files based on spec...

Comprendre le format de la liste des modules :

  • ansible.builtin. : Indique qu'il s'agit de modules intégrés fournis avec Ansible Core
  • Nom du module : Le nom que vous utilisez lors de l'appel du module dans les playbooks ou les commandes ad-hoc
  • Description : Une brève explication de ce que fait le module

Quelques modules importants que vous utiliserez couramment :

  • command : Exécuter des commandes shell sur les systèmes cibles
  • copy : Copier des fichiers de votre machine de contrôle vers des hôtes distants
  • dnf : Installer, mettre à jour ou supprimer des paquets sur les systèmes Red Hat
  • file : Créer des répertoires, définir des permissions ou gérer les propriétés des fichiers
  • debug : Afficher des messages pendant l'exécution du playbook pour le dépannage

Pour obtenir une documentation détaillée pour un module spécifique, vous pouvez utiliser la commande ansible-doc avec le nom du module. Par exemple, pour en savoir plus sur le module copy :

ansible-doc copy

Cela affichera une documentation complète pour le module copy, y compris des exemples et des descriptions de paramètres. La commande ansible-doc fournit une documentation détaillée pour tout module Ansible, ce qui facilite l'apprentissage de l'utilisation des différentes capacités d'automatisation. Appuyez sur q pour quitter l'afficheur de documentation lorsque vous avez fini de lire.

Résumé

Dans ce lab, vous avez appris avec succès comment installer et vérifier Ansible Core sur un système Red Hat Enterprise Linux. Voici ce que vous avez accompli :

  1. Installation d'Ansible Core : Vous avez utilisé la commande sudo dnf install ansible-core -y pour installer le paquet Ansible Core et ses dépendances à partir des référentiels officiels Red Hat.

  2. Vérification de l'installation : Vous avez confirmé qu'Ansible était correctement installé en vérifiant la version des commandes ansible et ansible-playbook.

  3. Test des fonctionnalités de base : Vous avez exécuté des commandes Ansible simples pour vérifier que l'installation fonctionne correctement, notamment :

    • Utilisation du module ping pour tester la connectivité
    • Utilisation du module setup pour collecter les faits système
  4. Exploration des modules disponibles : Vous avez appris à découvrir et à lire la documentation de la vaste bibliothèque de modules Ansible en utilisant ansible-doc.

Vous disposez désormais d'une installation Ansible entièrement fonctionnelle sur RHEL et comprenez les commandes de base nécessaires pour commencer à automatiser votre infrastructure. Cette base vous prépare à des sujets Ansible plus avancés tels que l'écriture de playbooks, la gestion des inventaires et la mise en œuvre de flux de travail d'automatisation complexes.