Recherche de site Web

Comment installer et configurer l'outil d'automatisation « Ansible » pour la gestion informatique - Partie 1


Ansible est un logiciel d'automatisation open source puissant permettant de configurer, de gérer et de déployer des applications logicielles sur les nœuds sans aucun temps d'arrêt, simplement en utilisant SSH. Aujourd'hui, la plupart des outils d'automatisation informatique fonctionnent en tant qu'agent sur un hôte distant, mais ansible a simplement besoin d'une connexion SSH et de Python (2.4 ou version ultérieure) installé sur les nœuds distants pour effectuer son action.

Comment fonctionne Ansible ?

Il existe de nombreux outils d'automatisation similaires disponibles comme Puppet, Capistrano, Chef, Salt, Space Walk, etc., mais Ansible se classe en deux types de serveurs : les machines de contrôle et les nœuds.

La machine de contrôle, sur laquelle Ansible est installé et les nœuds sont gérés par cette machine de contrôle via SSH. L'emplacement des nœuds est spécifié en contrôlant la machine via son inventaire.

La machine de contrôle (Ansible) déploie des modules sur les nœuds à l'aide du protocole SSH et ces modules sont stockés temporairement sur des nœuds distants et communiquent avec la machine Ansible via une connexion JSON via la sortie standard.

Ansible est sans agent, ce qui signifie qu'aucune installation d'agent n'est nécessaire sur les nœuds distants, cela signifie donc qu'aucun démon ou programme en arrière-plan n'est exécuté pour Ansible, lorsqu'il ne gère aucun nœud.

Ansible peut gérer des centaines de nœuds à partir d'un seul système via une connexion SSH et l'ensemble de l'opération peut être géré et exécuté par une seule commande « ansible ». Mais, dans certains cas, où vous deviez exécuter plusieurs commandes pour un déploiement, nous pouvons créer ici des playbooks.

Les playbooks sont un ensemble de commandes qui peuvent effectuer plusieurs tâches et chaque playbook est au format de fichier YAML.

À quoi sert Ansible

Ansible peut être utilisé dans l'infrastructure informatique pour gérer et déployer des applications logicielles sur des nœuds distants. Par exemple, disons que vous devez déployer un seul logiciel ou plusieurs logiciels sur des centaines de nœuds par une seule commande, ici ansible entre en scène, avec l'aide d'Ansible, vous pouvez déployer autant d'applications sur plusieurs nœuds avec une seule commande, mais vous devez avoir un peu de connaissances en programmation pour comprendre les scripts ansible.

Nous avons compilé une série sur Ansible, intitulée « Préparation au déploiement de votre infrastructure informatique avec Ansible IT Automation Tool », à travers les parties 1 à 4 et couvre les sujets suivants.

Dans cet article, nous allons vous montrer comment installer « Ansible » sur les systèmes RHEL/CentOS 7/6, Fedora 21-19, Ubuntu 14.10-13.04 et Debian 7/6 et nous passerons également en revue quelques notions de base sur la façon de gérer un serveur en installant des packages, en appliquant des mises à jour et bien plus encore, du basique au professionnel.

Conditions préalables

  1. Système d'exploitation : RHEL/CentOS/Fedora et Ubuntu/Debian/Linux Mint
  2. Jinja2 : un moteur de modèles autonome moderne, rapide et facile à utiliser pour Python.
  3. PyYAML : un analyseur et émetteur YAML pour le langage de programmation Python.
  4. parmiko : une bibliothèque de canaux Python SSHv2 native.
  5. httplib2 : une bibliothèque client HTTP complète.
  6. sshpass : une authentification par mot de passe SSH non interactive.

Configuration de mon environnement

Machine de contrôle – Ansible
Operating System :	Linux Mint 17.1 Rebecca
IP Address	 :	192.168.0.254
Host-name	 :	tecmint.instrcutor.com
User		 :	tecmint
Nœuds distants
Node 1: 192.168.0.112
Node 2: 192.168.0.113
Node 3: 192.168.0.114

Étape 1 : Installation de la machine de contrôle – Ansible

1. Avant d'installer « Ansible » sur le serveur, vérifions d'abord les détails du serveur comme le nom d'hôte et l'adresse IP. Connectez-vous au serveur en tant qu'utilisateur root et exécutez la commande ci-dessous pour confirmer les paramètres système que nous allons utiliser pour cette configuration.

sudo ifconfig | grep inet

2. Une fois que vous avez confirmé les paramètres de votre système, il est temps d'installer le logiciel « Ansible » sur le système.

Sur Ubuntu/Debian/Linux Mint

Ici, nous allons utiliser le référentiel officiel Ansible PPA sur le système, exécutez simplement les commandes ci-dessous pour ajouter le référentiel.

sudo apt-add-repository ppa:ansible/ansible -y
sudo apt-get update && sudo apt-get install ansible -y

Sur RHEL/CentOS/Fedora

Malheureusement, il n'existe pas de référentiel Ansible officiel pour les clones basés sur RedHat, mais nous pouvons installer Ansible en activant le référentiel epel sous RHEL/CentOS 6, 7 et les distributions Fedora actuellement prises en charge.

Les utilisateurs de Fedora peuvent installer directement Ansible via le référentiel par défaut, mais si vous utilisez RHEL/CentOS 6, 7, vous devez activer le référentiel EPEL.

Après avoir configuré le référentiel epel, vous pouvez installer Ansible à l'aide de la commande suivante.

sudo yum install ansible -y

Une fois l'installation réussie, vous pouvez vérifier la version en exécutant la commande ci-dessous.

ansible --version

Étape 2 : Préparation des clés SSH pour les hôtes distants

4. Pour effectuer tout déploiement ou gestion de l'hôte local vers l'hôte distant, nous devons d'abord créer et copier les clés ssh sur l'hôte distant. Dans chaque hôte distant, il y aura un compte utilisateur tecmint (dans votre cas, il peut s'agir d'un utilisateur différent).

Créons d’abord une clé SSH à l’aide de la commande ci-dessous et copions la clé sur des hôtes distants.

ssh-keygen -t rsa -b 4096 -C "[email "

5. Après avoir créé avec succès la clé SSH, copiez maintenant la clé créée sur les trois serveurs distants.

ssh-copy-id [email 
ssh-copy-id [email 
ssh-copy-id [email 

6. Après avoir copié toutes les clés SSH sur l'hôte distant, effectuez maintenant une authentification par clé SSH sur tous les hôtes distants pour vérifier si l'authentification fonctionne ou non.

ssh [email 
ssh [email 
ssh [email