Installer et configurer Ansible sous Linux
Ce guide étape par étape vous guide à travers les étapes d'installation et de configuration d'Ansible sous Linux. Il explique également comment configurer Ansible homelab sous Linux pour apprendre les bases d'Ansible.
1. Introduction
Ansible est un outil d'automatisation informatique grâce auquel vous pouvez automatiser un nombre « N » de tâches dans votre environnement logiciel. Pour savoir ce qu'est Ansible et ses fonctionnalités, consultez notre guide « Introduction à Ansible ».
Ansible est évidemment conçu pour la gestion de configuration à grande échelle. Si votre objectif est d’apprendre et de pouvoir recréer votre environnement rapidement, alors vous êtes sur la bonne voie !
Ansible est une architecture sans agent. Signification : aucun agent/processus ansible n'est exécuté sur les nœuds gérés.
Comme je l'ai déjà mentionné dans l'article d'introduction d'Ansile, il existe deux types de nœuds dans ansible.
- Nœud maître/contrôleur - Serveur/poste de travail sur lequel ansible sera installé. À partir de ce nœud, vous exécuterez tous les playbooks et commandes ansible.
- Nœuds gérés : liste des hôtes qui seront gérés à l'aide d'ansible.
Il n’est pas nécessaire que tous les nœuds gérés s’exécutent avec la même version ou le même type de distribution. Vous pouvez avoir différentes versions de Linux en tant que nœuds gérés.
La communication entre le contrôleur et les nœuds gérés s'effectuera à l'aide de l'authentification par clé SSH.
Ce guide pratique vous apprendra comment configurer Ansible Lab dans les distributions Linux.
Remarque :
- Vous ne pouvez pas utiliser Windows comme nœud de contrôleur.
- Il est possible de configurer plusieurs nœuds de contrôleur.
Avant de commencer avec Ansible, permettez-moi de vous montrer la représentation picturale de ma configuration Ansible homelab.
2. Schéma architectural pour le laboratoire Ansible à 3 nœuds
L'illustration graphique suivante vous donne une belle représentation picturale de l'apparence du laboratoire.
Ma configuration Ansible homelab
À des fins de démonstration, je configure un nœud Controller sur Ubuntu 20.04 et 2 nœuds gérés sur CentOS 8 et Ubuntu 21.04.
3. Installer et configurer Ansible sous Linux
Tout d’abord, nous verrons comment configurer le nœud géré Ansible sous Linux.
3.1. Installer Ansible sous Linux
Étant donné qu'Ansible est écrit en Python, votre machine Linux doit avoir Python installé pour qu'Ansible fonctionne.
Heureusement, toutes les distributions Linux sont livrées avec Python préinstallé. Ansible prend en charge à la fois Python 2.7 et Python 3.5 et versions ultérieures.
Pour vérifier quelle version de python est installée sur votre ordinateur, vous pouvez utiliser les commandes suivantes. Le résultat peut varier en fonction de la façon dont Python est configuré dans votre distribution.
$ which python python2 python3
/usr/bin/python2
/usr/bin/python3Vérifiez la version de Python :
$ python2 --version
Python 2.7.18rc1$ python3 --version
Python 3.8.5$ compgen -c python | grep -P '^python..\d'
python3.8
python3.8-config
python2.7Vous pouvez installer ansible sous Linux de deux manières.
- Utilisation du gestionnaire de packages du système d'exploitation
- Utilisation de PIP - Gestionnaire de packages Python
3.1.1. Installer Ansible à l'aide du gestionnaire de packages système
Tout d’abord, nous verrons comment utiliser le gestionnaire de packages de votre distribution pour installer ansible. En fonction de votre distribution Linux, exécutez les commandes suivantes.
Installez Ansible dans Arch Linux, EndeavourOS, Manjaro Linux :
sudo pacman -S ansibleDebian :
Editez le fichier /etc/apt/sources.list :
sudo nano /etc/apt/sources.listAjoutez la ligne suivante :
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Exécutez ensuite les commandes suivantes :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt update
sudo apt install ansibleFedora :
sudo dnf install ansibleCentOS, RHEL, AlmaLinux, Rocky Linux :
sudo dnf install epel-releasesudo dnf install ansibleUbuntu et ses dérivés :
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansibleVotre distribution peut être livrée avec une version obsolète d'Ansible. Si vous souhaitez installer une version mise à jour d'Ansible sur votre système, vous pouvez utiliser Pip, le gestionnaire de packages Python.
3.1.2. Installer Ansible à l'aide de Pip
Tout d’abord, vérifiez si PIP est installé en exécutant les commandes suivantes :
$ which pip pip3
/usr/bin/pip
/usr/bin/pip3$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)Si PIP n'est pas installé, exécutez les commandes suivantes pour l'installer.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --userUne fois PIP installé, exécutez la commande suivante pour installer ansible :
sudo python3 -m pip install ansibleCela installera la dernière version d'Ansible.
Vous pouvez également installer une version spécifique d'Ansible, par exemple 2.9, comme ci-dessous :
sudo python3 -m pip install 'ansible==2.9'Après avoir installé Ansible, exécutez la commande suivante pour vérifier la version d'Ansible :
ansible --versionCette commande donne des informations sur l'emplacement de votre fichier hôte, de votre fichier de configuration et de votre fichier binaire ansible et sur la version d'Ansible installée.
Exemple de résultat :
ansible 2.9.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]3.2. Configurer Ansible
Comme indiqué précédemment, Ansible communiquera avec les nœuds gérés à l'aide du protocole d'authentification ssh.
Nous allons créer une paire de clés ssh et les distribuer sur tous les nœuds gérés. Ainsi, chaque fois qu'une commande ansible est soumise, elle s'authentifiera auprès des nœuds gérés à l'aide de ces clés.
3.2.1. Générer une paire de clés SSH pour les nœuds gérés
Créez un nouvel utilisateur appelé ansible dans le contrôleur et les nœuds gérés.
sudo useradd ansible ##create user
sudo passwd ansible ##set password for ansible user.Connectez-vous/changez en tant qu'utilisateur ansible et créez une paire de clés ssh à l'aide des commandes :
su - ansiblessh-keygen -t rsaCette commande générera une paire de clés SSH.
Distribuez maintenant la clé publique à tous les nœuds gérés.
Vous pouvez utiliser la commande ssh-copy-id pour copier la clé publique sur le nœud cible.
Pour copier la clé publique sur le nœud cible avec la commande ssh-copy-id, exécutez :
ssh-copy-id -i ~/.ssh/id_rsa ansible@host-nameSi vous avez plus de nœuds, utilisez la for loop pour copier la clé ssh sur tous les nœuds cibles.
Pour les besoins de ce guide, j'ai 2 nœuds gérés et je les ai nommés centos1 (centos8) et ubuntu1 (ubuntu 20.04). Pour copier la clé sur les deux nœuds, j'ai utilisé le code suivant :
for node in centos1 ubuntu1; do ssh-copy-id -i /home/ansible/.ssh/id_rsa ansible@${node} doneCopier les clés SSH sur les nœuds cibles
Connectez-vous maintenant à votre nœud géré pour vérifier si l'authentification par clé fonctionne correctement.
ssh username@hostnameLa configuration d'Ansible est maintenant terminée. À l'étape suivante, un fichier d'inventaire doit être créé et exécuter certaines commandes ansible sur les hôtes gérés.
3.2.2. Tester la configuration d'Ansible
Ansible possède deux fichiers importants qui sont requis pour soumettre des commandes Adhoc ou playbook.
Ansible.cfg- fichier de configuration ansible.Hôtes- Fichier d'inventaire où les détails de l'hôte sont fournis.
Eh bien, discutez plus en profondeur des fichiers de configuration et d'inventaire dans un article séparé. Au moment d'exécuter la première commande ansible, il vous suffit d'ajouter les noms d'hôte de vos nœuds gérés dans le fichier d'inventaire.
Le fichier de configuration Ansible se trouve dans le fichier /etc/ansible/ansible.cfg. Vous pouvez également obtenir ces détails en exécutant la commande ansible version :
$ ansible --version
ansible 2.9.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/karthick/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.5 (default, Jan 27 2021, 15:41:15) [GCC 9.3.0]Ouvrez le fichier ansible.cfg et recherchez l'inventaire des paramètres. Ce paramètre sera référencé par ansible lors de l'exécution pour obtenir le chemin du fichier d'inventaire.
$ sudo grep -iw "^#Inventory" /etc/ansible/ansible.cfg
#inventory = /etc/ansible/hostsL'inventaire pointe par défaut vers le fichier /etc/ansible/hosts . Ouvrez le fichier hosts et ajoutez le nom d'hôte/l'adresse IP du nœud géré.
J'ai un mappage DNS vers IP, j'ai donc donné le nom DNS dans le fichier de l'hôte. Vous pouvez également donner l'adresse IP.
Fichier d'inventaire Ansible
Tout est mis en place pour exécuter notre tâche dans ansible !
Semblable au programme "Hello world" en programmation, ansible a également pour tradition d'exécuter un ping comme première commande pour vérifier la connectivité entre le contrôleur et les nœuds gérés.
Le module ping tentera d'atteindre les nœuds gérés et vérifiera si un interpréteur Python est disponible à utiliser et répondra comme pong.
ansible all -m pingVous pouvez également spécifier explicitement le fichier hosts en utilisant l'indicateur -i comme ci-dessous :
ansible all -m ping -i flag <path-to-host-file>Module Ansible-ping
Vous pouvez maintenant commencer à jouer avec le module avec lequel vous souhaitez jouer.
Si vous souhaitez ajouter plus de nœuds de contrôleur, il vous suffit de copier la clé SSH du nœud de contrôleur vers le nouveau nœud et d'ajouter l'entrée IP/DNS dans le fichier de l'hôte. Et puis, ansible peut commencer à récupérer le nœud géré nouvellement ajouté. C'est aussi simple que ça !
Conclusion
Dans ce guide, nous avons expliqué comment installer et configurer Ansible sous Linux. Nous vous avons également montré comment configurer manuellement un homelab Ansible à trois nœuds.
Il existe d'autres solutions automatisées, comme la configuration d'Ansible Lab à l'aide de Vagrant ou de Docker. Nous aborderons ces sujets dans nos prochains articles.
Ansible est un vaste sujet ! Nous n'avons couvert que les bases d'Ansible. Consultez la documentation officielle d'Ansible pour en savoir plus sur l'utilisation d'Ansible.
Lire ensuite :
- Configuration automatisée d'Ansible Lab avec Vagrant et Virtualbox sous Linux
- Fichiers d'inventaire et de configuration Ansible



