GNU/Linux >> Tutoriels Linux >  >> Linux

Guide Ansible :la commande ad hoc

La commande Ad-Hoc est la commande ansible à une ligne qui exécute une tâche sur l'hôte cible. Il vous permet d'exécuter une simple tâche d'une ligne sur un ou un groupe d'hôtes définis dans la configuration du fichier d'inventaire. Une commande Ad-Hoc n'aura que deux paramètres, le groupe d'un hôte que vous souhaitez exécuter la tâche et le module Ansible à exécuter.

La commande Ad-Hoc vous donne plus d'avantages pour explorer ansible lui-même. Vous pouvez effectuer des tâches sans créer de playbook au préalable, telles que le redémarrage des serveurs, la gestion des services, la modification de la configuration de la ligne, la copie d'un fichier sur un seul hôte, l'installation d'un seul package.

Dans ce tutoriel, je vais montrer l'utilisation de base de la commande Ansible Ad-Hoc. J'utiliserai la commande Ad-Hoc pour effectuer des tâches simples qui peuvent être nécessaires au quotidien en tant qu'administrateur système.

Prérequis

Pour ce guide, nous utiliserons deux serveurs Ubuntu 18.04 LTS, Bionic Beaver. Le serveur ansible recevra le nom d'hôte 'ansible-node' avec l'adresse IP 10.5.5.20 et le serveur Provision avec le nom d'hôte 'provision' et l'adresse IP 10.5.5.21.

Qu'allons-nous faire ?

  1. Commande ad hoc de base
  2. Transfert de fichiers
  3. Mise à jour et mise à niveau
  4. Gérer le package
  5. Gérer les services
  6. Système de vérification

Utilisation de base des commandes ad hoc

Tout d'abord, nous apprendrons l'utilisation de base d'Ansible Ad-Hoc pour la gestion des serveurs. Nous apprendrons la commande de base Ansible Ad-Hoc, en utilisant la commande Ad-Hoc avec l'authentification par mot de passe ssh, l'élévation des privilèges et en utilisant la commande Ad-Hoc contre un groupe d'hôtes.

1. Commande de base

La commande de base d'ansible ad-hoc contre 'tous' les hôtes sur le fichier d'inventaire et en utilisant le module 'ping'.

ansible all -m ping
  • Le premier paramètre "all" pour tous les hôtes du fichier d'inventaire.
  • Le deuxième paramètre à l'intérieur de l'option '-m' pour le module, exécutant le module ping.

Vous obtiendrez maintenant le résultat ci-dessous.

Une commande Ad-Hoc contre le serveur de provisioning a été 'SUCCESS' sans aucune modification apportée au serveur et nous obtenons le résultat du module 'ping' du serveur de provisioning 'pong'.

2. Filtrer le groupe d'hôtes et l'hôte unique

Vous pouvez désormais utiliser la commande Ad-Hoc sur un groupe d'hôtes déjà définis dans le fichier d'inventaire. Vous pouvez utiliser votre fichier d'inventaire personnalisé ou utiliser le fichier d'inventaire par défaut '/etc/ansible/hosts'.

Vous trouverez ci-dessous un exemple d'exécution de la commande ad hoc sur le groupe d'hôtes appelé "hakase-testing" qui sont déjà définis dans le fichier de configuration d'inventaire par défaut.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"

Si vous utilisez le fichier d'inventaire personnalisé, ajoutez l'option '-i' suivi du nom du fichier d'inventaire.

ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"

Vous obtiendrez le même résultat.

Maintenant, si vous souhaitez exécuter sur un seul hôte sur la configuration d'inventaire, vous pouvez utiliser le nom de l'hôte comme ci-dessous.

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

Et la commande ad hoc s'exécutera uniquement sur le serveur 'provision'.

3. Utilisation du mot de passe SSH

Nous allons maintenant exécuter une commande Ad-Hoc en utilisant l'authentification par mot de passe ssh demandée. Et pour ce faire, vous devez installer le package supplémentaire appelé 'sshpass' sur le 'ansible-node'.

Installez le package sshpass à l'aide de la commande apt ci-dessous.

sudo apt install sshpass -y

Exécutez maintenant la commande ad-hoc et ajoutez l'option '--ask-pass' à la fin.

ansible hakase-testing -m ping --ask-pass

Et on vous demandera le 'Mot de passe SSH' pour le serveur.

Tapez votre mot de passe ssh et la commande ad hoc sera exécutée sur le serveur.

4. Escalade des privilèges

L'ansible fournit des fonctionnalités pour l'élévation des privilèges contre les serveurs. Si vous souhaitez exécuter la commande ad hoc en tant qu'utilisateur non root, vous pouvez utiliser l'option '--become' pour obtenir les privilèges root et l'option '-K' pour demander le mot de passe.

Exécutez la commande ad hoc 'fdisk -l' en tant qu'utilisateur 'hakase' avec l'option de privilège '--become' et le '-K' pour demander le 'mot de passe SUDO'.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

Ci-dessous le résultat.

Transfert de fichiers

Nous allons maintenant utiliser la commande Ad-Hoc pour le transfert de fichiers vers et depuis le serveur. Nous pouvons transférer un fichier vers le serveur d'approvisionnement avec le module 'copy' et télécharger le fichier depuis le serveur en utilisant le module 'fetch'.

1. Télécharger le fichier sur l'hôte

Pour cet exemple, nous allons exécuter la commande ad-hoc et utiliser le module 'copy' pour télécharger la configuration sudoers pour l'utilisateur hakase dans le répertoire '/etc/sudoers.d' du groupe 'hakase-testing'.

Exécutez la commande ad hoc ci-dessous.

ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K

Maintenant, on vous demandera le 'mot de passe SUDO' pour l'utilisateur hakase. Tapez le mot de passe et vous obtiendrez le résultat comme ci-dessous.

Le fichier a été téléchargé dans le répertoire de destination 'dest' et vous obtenez le résultat 'changed' comme 'true'.

2. Télécharger le fichier depuis l'hôte

Nous allons maintenant utiliser une commande ad-hoc avec le module 'fetch' pour télécharger le fichier du serveur de provisioning vers le serveur 'ansible-node' local.

Téléchargez le fichier de configuration '/etc/sudoers.d/hakase' du serveur 'provision' vers le répertoire local appelé 'backup'.

ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'

Et vous obtiendrez le fichier appelé 'hakase-sudoers' dans le répertoire 'backup'.

Étape 3 - Mettre à jour le référentiel et mettre à niveau les packages

Pour mettre à jour et mettre à niveau le référentiel des serveurs Ubuntu, nous pouvons utiliser la commande ad-hoc avec le module apt.

Mettre à jour le référentiel sur le groupe hakase-testing.

ansible hakase-testing -m apt -a 'update_cache=yes' --become

Maintenant, mettez à jour les référentiels et mettez à niveau tous les packages vers la dernière version à l'aide de l'option 'upgrade=dist'.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Attendez que tous les packages soient mis à niveau.

Gérer les packages

Ceci est très utile lorsque vous essayez de créer et de déboguer votre propre playbook. Parce que parfois, vous avez besoin d'un package supplémentaire à installer sur le système. Ainsi, cette commande ad hoc vous permettra d'installer facilement ce package sans vous connecter à chaque serveur.

1. Installer le package

Installez un seul paquet en utilisant la commande ad-hoc avec le module apt comme ci-dessous.

ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Supprimer le paquet

Supprimez le package et purgez toute la configuration liée au package.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Suppression automatique

L'exemple ci-dessous supprime le package nginx et purge toutes les configurations liées, puis supprime tous les packages inutilisés sur le système.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Gérer les services

Dans cette étape, nous allons utiliser le module de service sur la commande ad hoc pour gérer le service système sur le serveur de provisionnement.

1. Démarrer les services

Démarrez le service nginx et ajoutez-le au temps de démarrage.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Vous obtiendrez le résultat "modifié" et "activé" comme "vrai".

2. Redémarrer le service

Si vous souhaitez redémarrer le service, vous pouvez utiliser la commande suivante.

ansible hakase-testing -m service -a 'name=nginx state=restarted' --become

Le service nginx a été redémarré.

3. Arrêter un service

Pour arrêter le service, changez la valeur 'state' en 'stopped'.

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

Le service nginx sur les serveurs 'hakase-testing' a été arrêté.

Vérifier le système

Nous allons maintenant utiliser le module 'shell' dans la commande ad-hoc. Et nous effectuerons une surveillance simple du système à l'aide d'une simple commande Linux via l'ad-hoc Ansible.

Tout d'abord, installez le package 'sysstat' sur tous les serveurs à l'aide de la commande ad-hoc ci-dessous.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Attendez l'installation du package 'sysstat'.

Une fois terminé, vous êtes prêt à vérifier tous les serveurs.

1. Disque disponible

Vérifiez le disque disponible sur la partition racine à l'aide de la commande fdisk.

ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become

Changez le '/dev/sda2' avec votre propre chemin.

2. Utilisation de la mémoire RAM

Vérifiez maintenant l'utilisation de la mémoire RAM sur tous les serveurs à l'aide de la commande 'free -m'.

ansible hakase-testing -m shell -a 'free -m' --become

Et vous verrez le résultat comme ci-dessous.

3. Utilisation du processeur

Vérification de l'utilisation du processeur de tous les serveurs à l'aide de la commande mpstat.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

La commande mpstat fait partie du package 'sysstat'.

4. Ports ouverts

Vérification des ports ouverts sur tous les systèmes à l'aide de netstat via la commande ad hoc.

ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Disponibilité

Vérifiez maintenant la disponibilité de chaque serveur.

ansible hakase-testing -m shell -a 'uptime' --become

Linux
  1. Un guide du terminal Linux pour les débutants

  2. Maîtrisez la commande Linux ls

  3. Introduction à la commande alternatives sous Linux

  4. Une introduction à la commande diff

  5. Une vue pratique de la commande xargs

Maîtrisez la ligne de commande Linux

Un guide du débutant pour naviguer dans le système de fichiers Linux

La commande choose sous Linux

La commande timer sous Linux

Un guide pratique pour la commande chroot sous Linux

La commande apt - Un guide d'utilisation pratique