Vous avez besoin d’exécuter des tâches système rapides sans la complexité des fichiers de configuration.
La création de playbooks complexes est souvent inutile pour des actions simples, entraînant une perte de temps et d’efficacité.
Les commandes ad-hoc d’Ansible offrent une méthode directe et efficace pour accomplir ces tâches immédiatement, vous permettant de vous concentrer sur l’essentiel.
Devenez un expert d'Ansible et simplifiez vos tâches d'administration.
Qu'est-ce qu'une commande ad-hoc Ansible ?
Les commandes ad-hoc sont des instructions uniques utilisées dans Ansible pour exécuter des tâches spécifiques directement depuis la ligne de commande, sans avoir besoin de créer un fichier de playbook. Ces commandes sont très utiles pour les actions rapides et les tâches simples qui ne nécessitent pas une répétition fréquente.
Propriétés des commandes ad-hoc Ansible
- Simplicité :Les commandes ad-hoc sont faciles à utiliser et ne nécessitent pas de fichier de configuration complexe.
- Flexibilité :Elles permettent d’exécuter rapidement des tâches sur un ou plusieurs hôtes.
- Non persistantes :Contrairement aux playbooks, elles ne sont pas stockées pour une utilisation future, sauf si elles sont enregistrées manuellement.
- Immédiates :Elles sont idéales pour les tâches qui doivent être exécutées immédiatement, comme redémarrer un service ou copier un fichier.
Utilisations des commandes ad-hoc d'Ansible
L’utilisation des commandes ad-hoc se concentre principalement sur trois aspects :
Voici des exemples des commandes ad-hoc les plus utilisées au quotidien par un développeur :
- Gestion des Paquets :Installation :ansible all -m apt -a « name=curl state=present » -bet cela nous donne le résultat comme ceci.
- Gestion des Services :Arrêt d’un service:ansible all -m service -a « name=nginx state=stopped » -b
- Gestion des Fichiers :Copier un fichier : ansibleall -m copy -a « src=/local/path dest=/remote/path » -b
- Exécution de Commandes :Commande simple :ansible all -m command -a « uptime »
Cette commande Ansible exécute la commande uptime sur tous les hôtes définis dans votre inventaire. La commande uptime affiche depuis combien de temps le système fonctionne.
Pratiquer les commandes ad-hoc Ansible
Introduction aux commandes ad-hoc Ansible
Dans cette section, nous allons explorer le redémarrage des serveurs en utilisant une commande ad-hoc. Pour cela, nous devons suivre les étapes suivantes :
- Ajouter le groupe à l’inventaire.
- Assurer que l’identification SSH est active.
Nous avons déjà couvert ces deux premières étapes dans le chapitre précédent. Maintenant, nous allons nous concentrer sur la dernière étape : lancer la commande de redémarrage. Voici des exemples de commandes pour effectuer le redémarrage :
Redémarrer tous les serveurs du groupe : ansible atlanta -a « /sbin/reboot »
Redémarrer les serveurs avec 10 fourches parallèles :
ansible atlanta -a « /sbin/reboot » -f 10 /usr/bin/ansible
Se connecter sous un autre utilisateur : ansible atlanta -a « /sbin/reboot » -f 10 -u username
Essayons maintenant de redemarrer tous les hôtes (les nœuds gérés) dans notre inventaire avec la commande ad-hoc. Pour faire cela, exécutons la commande suivante dans le terminal du nœud de contrôle : ansible servers -a « /sbin/reboot » –become. Cette commande redémarrera les nœuds dans le groupe de serveurs.
Cela nous donne le résultat comme ceci :
Voilà, le résultat indique clairement que la machine ayant l’adresse IP 52.47.145.67 est hors ligne (nous pouvons le constater sur le terminal de cette machine, puisque le terminal retourne à celui de notre machine de travail et nous pouvons la redémarrer par la suite) ce qui signifie que nous avons atteint notre objectif
Nous allons approfondir encore la compréhension de la commande ah-hoc. Dans cette seconde partie, nous allons explorer les autres cas d’utilisation de la commande ad-hoc.
Gestion des fichiers avec Ansible
Premièrement, nous allons voir le cas d’utilisation gestion des fichiers. Nous allons essayer de transférer un fichier dans tous les nœuds gérés à patir du nœud de contrôle.
Pour transférer un fichier directement vers tous les serveurs du groupe, nous allons exécuter la commande :
ansible servers -m ansible.builtin.copy -a « src=/etc/hosts dest=/tmp/hosts »
ansible : C’est la commande principale d’Ansible utilisée pour exécuter des actions sur des hôtes distants.
servers : C’est le groupe d’hôtes sur lequel l’action va être exécutée. Ce groupe doit être défini dans votre inventaire Ansible.
– m ansible.builtin.copy : Cela spécifie le module à utiliser avec Ansible pour cette opération. Dans ce cas, ansible.builtin.copy est utilisé pour copier des fichiers.
-a « src=/etc/hosts dest=/tmp/hosts »: C’est l’argument ad-hoc (-a pour « argument ») qui indique quelle action doit être réalisée. Ici, src=/etc/hosts spécifie le chemin du fichier source sur le nœud de contrôle (ici, /etc/hosts), et dest=/tmp/hosts spécifie le chemin de destination sur les hôtes cibles (ici, /tmp/hosts).
En exécutant cette commande, nous avons un résultat comme ceci :
Très bien, la commande était bien exécutée, nous pouvons vérifier le contenu fichiers hosts dans le dossier tmp du nœud géré et le fichiers hosts dans le dossier etc du nœud de contrôle .
Dans le nœud géré, voilà son contenu :
Et pour le nœud de contrôle, voici le contenu du fichier hosts :
Nous pouvons observer que le contenu du fichier est identique, ce qui confirme que la copie s’est déroulée avec succès. Il est à noter que le dossier tmp sur le nœud géré ne contenait pas de fichier hosts avant l’exécution de la commande.
La commande ad-hoc nous permet de changer la propriété et les permissions sur les fichiers. Voyons maintenant un exemple en créant un fichier dans le nœud de contrôle avec la commande : nano testFile
Nous allons vérifier les propriétés par défaut du fichier testFile avec la commande stat -c « %a %n » testFile
Super, le fichier testFile est en mode 664 par défaut, donc grâce au command ad-hoc, nous pouvons le modifier à partir du nœud de contrôle avec la commande ansible servers -m ansible.builtin.file -a » path=/tmp/testFile mode = 600 state = touch » en changeant le mode par 600.
Voilà, ce visuel nous affiche bien que le command soit bien exécuté et vérifions maintenant le mode du fichier dans le nœud géré en y lancant la même commande :
Gestion des paquets via Ansible
L’un des aspects puissants d’Ansible est sa capacité à gérer les paquets logiciels sur plusieurs serveurs de manière efficace et automatisée. Cela peut être réalisé à l’aide de commandes ad-hoc ou de playbooks plus complexes. Dans cette section, nous explorerons comment utiliser Ansible pour installer, mettre à jour ou supprimer des paquets sur les nœuds gérés en utilisant le module ansible.builtin.yum adapté aux systèmes basés sur RPM qui est linux dans notre cas.
Pour cette partie, nous allons essayer d’installer le paquet acme dans le nœud géré à partir du nœud de contrôle.
Pour faire cela, assurons maintenant que le paquet n’est pas encore installé maintenant en lancant la commande acme –version dans notre nœud géré :
Voilà, le paquet n’est pas encore dans le nœud géré. Donc, pour l’installer lançons la commande suivante : ansible servers -b -m ansible.builtin.apt -a « name=acme state=present » –become
ansible servers: Indique à Ansible d’exécuter une action sur le groupe d’hôtes servers défini dans l’inventaire.
– b (ou –become): Cette option indique à Ansible de devenir super utilisateur (root) lors de l’exécution de la commande. Cela est nécessaire pour effectuer des opérations qui nécessitent des privilèges administratifs, comme l’installation de paquets logiciels.
– m ansible.builtin.apt : Utilise le module Ansible intégré apt pour gérer les paquets sur des systèmes basés sur Debian (comme Ubuntu). Ce module permet de gérer les paquets via les outils apt-get ou apt.
– a « name=acme state=present » : Spécifie les arguments ad-hoc (-a pour « argument ») pour le module apt. Dans cet exemple :
name=acme : Indique le nom du paquet à installer (acme dans ce cas).
state=present : Indique que le paquet doit être présent sur le système. Si le paquet n’est pas déjà installé, Ansible le téléchargera et l’installera.
Cette commande nous donne le résultat comme ceci.
Bien, l’installation est bien terminée avec succès, nous pouvons encore le vérifier dans le nœud de contrôle en lançant la commande : acme –version
Parfait, le paquet est bien installé avec la version 0.97.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce qu'une commande ad-hoc dans Ansible?
Comment utiliser les commandes ad-hoc pour la gestion des paquets?
Comment exécuter une commande simple avec Ansible?
Comment copier un fichier avec une commande ad-hoc?
Comment redémarrer des serveurs avec Ansible?
Conclusion
Les commandes ad-hoc d’Ansible offrent une flexibilité incroyable pour gérer efficacement vos systèmes sans complexité supplémentaire. Quelle tâche souhaiteriez-vous automatiser avec Ansible pour améliorer votre flux de travail?