Installer Ansible sur Centos/RHEL 7.x
  Publié le : 15 juin 2016     Par : Hicham ABOULAINAIN    0 Commentaires


Présentation 

Ansible est un outil open source, de gestion de configuration et d’automatisation de déploiement des applications.  Aujourd’hui, la plupart des outils d’automatisation  ( Chef/Puputt ) se basent sur  un agent hôte distant, mais Ansible n’a besoin qu’une connexion SSH et Python (2.4 ou ultérieure) pour être installé sur les nœuds distants et pour effectuer ses actions.

Dans cet article je vais vous montrer comment installer Ansible sur une machine Centos/RHEL 7 et aussi nous allons voir quelques notions de base sur la configuration et les l’architecture d’Ansible.

Mon environnement de test :

Schema_ansible

Comment fonctionne Ansible?

Ansible est déployé  en deux types de serveurs: Serveur de contrôle et les noeuds.

Le serveur  de contrôle, où Ansible est installé et les nœuds sont gérés par cette machine de contrôle via SSH.

Le serveur de contrôle (Ansible) déploie des modules en utilisant le protocole SSH et ces modules sont stockés temporairement sur les nœuds distants et  communiquent avec le master Ansible via une connexion JSON sur la sortie standard.

Ansible est sans agent, ce qui signifie que vous n’avez pas  besoin d’installer l’agent sur les nœuds distants, donc il n’y a pas des démons ou des programmes qui s’exécutent  en arrière plan quand Ansible ne  gère pas les nœuds.

Ansible peut gérer 100 nœuds à partir d’un seul système via une connexion SSH et l’ensemble de l’opération peut être manipulé et exécuté par une seule commande ‘ansible’. Mais, dans certains cas, lorsque vous aurez besoin d’exécuter plusieurs commandes pour un déploiement, là, vous  pourrez construire des Playbooks.

Les Playbooks sont  des fichiers en format YAML qui regroupent des commandes et qui permettent d’effectuer des tâches multiples.

Quelle est l’utilisation d’Ansible ?

Ansible peut être utilisé dans l’infrastructure informatique pour gérer et déployer des applications aux nœuds distants. Par exemple, disons que vous voulez  déployer un seul ou plusieurs logiciels à 50 noeuds par une seule commande, à l’aide d’Ansible vous pouvez déployer ces applications avec une seule commande, il suffit d’avoir des connaissances  de scripts Ansible.

Installer Ansible

il n’y a pas de dépôt officiel Ansible pour Centos/RHEL , mais vous  pouvez  l’installer en configurant  les repos epel , il suffit de lancer la commande :

Après avoir configuré le repo epel, vous pouvez installer Ansible en utilisant la commande suivante :

La commande va installer toutes les dépendances nécessaires :

ansible001

Après avoir installé avec succès Ansible, vous pouvez vérifier la version installée en exécutant la commande suivante.

ansible002

Préparer les clés SSH pour les nœuds distants

Pour effectuer un déploiement ou gérer les nœuds par le master Ansible, vous devez  créer et copier les clés ssh sur les nœuds distants .

J’ai crée un compte aboulainain sur l’ensemble des machines de ce LAB (dans votre cas ça peut être un autre utilisateur).

pour créer les clés exécutez la commande suivante :

ansible003

Après avoir créé les clés SSH avec succès, copiez maintenant la clé publique  sur les deux serveurs distants en utilisant les commandes suivantes :

ansible004

ansible007

Après avoir copié toutes les clés SSH sur  les nœuds distants, effectuez une authentification avec la clé ssh sur tous les hôtes distants pour vérifier le bon fonctionnement de l’authentification.

ansible008

Créer le  fichier d’inventaire pour les hôtes distants

Le fichier d’inventaire est un fichier en format INI qui permet de créer des groupes de machines pour catégoriser les cibles en fonction de nos besoins.

Le fichier d’inventaire par défaut est  /etc/ansible hosts, et si vous voulez utiliser un fichier d’inventaire différent, précisez  le paramètre –i

Maintenant, ajoutez les deux nœuds au fichier d’inventaire. Editez le fichier /etc/ansible hosts et ajoutez les lignes suivantes :

Le terme  « webservers » dans les parenthèses spécifie le nom du groupe, il est utilisé pour la classification des systèmes et pour préciser quels systèmes vous allez contrôler à quel moment et pour quelle raison.

Après avoir ajouté les nœuds au fichier d’inventaire, il est maintenant temps d’exécuter notre première commande Ansible qui va permettre de tester la joignabilité des deux nœuds.

Pour effectuer cette action utiliser la commande ‘ansible’ avec l’option -m (module) et «-all» (groupe de serveurs) ou webservers que vous avez déclaré dans le fichier d’inventaire :

ansible009

Dans l’exemple ci-dessus, nous avons utilisé le module ping avec la commande ansible pour pinger tous les hôtes distants. On va voir un autre module appelé «commande», qui est utilisé pour exécuter les commandes  comme ( df, free, uptim, etc.) sur tous les hôtes distants sélectionnés en une seule fois, par exemple :

ansible010

Il existe d’autres modules  qui peuvent être utilisés avec Ansible, vous pouvez trouver les modules disponibles dans le site officiel ici.

 

Partagez Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 
1000 caractères restants