Ansible est un outil open source conçu pour la gestion de la configuration et de déploiement d'applications et qui permet de contrôler plusieurs machines distantes de manière automatisée.
Ansible utilise un canal SSH pour la communication afin de contrôler les machines/serveurs distants, ainsi tout système ayant un port SSH ouvert peut être configuré par une machine Ansible.
Ansible utilise un canal SSH pour la communication afin de contrôler les machines/serveurs distants, ainsi tout système ayant un port SSH ouvert peut être configuré par une machine Ansible.
Il y a deux façons différentes par lesquelles Ansible peut interagir avec l'hôte ou la machine distante, soit via des outils en ligne de commande ou ses scripts de configuration (Playbook), qui sont principalement écrits au format YAML
Avant de commencer ce tutoriel, les conditions requises sont les suivantes :
Une machine qui agira en tant que nœud de contrôle ansible, qui sera utilisée pour connecter et contrôler les machines/serveurs distants. Le nœud de contrôle peut être soit votre machine locale, soit un serveur Ansible sur le cloud ou on-premise, dans notre cas nous utiliseront une machine Ubuntu 20.04 sur Microsoft Azure.
Un utilisateur non root avec des privilèges sudo.
Un ou plusieurs hôtes distants, qui seront configurés pour s'automatiser via votre nœud de contrôle ansible.
Remarque : Veuillez vous assurer que le nœud de contrôle a un accès SSH aux systèmes/machines/serveurs.
Remarque : Veuillez vous assurer que le nœud de contrôle a un accès SSH aux systèmes/machines/serveurs.
Installation de Ansible :
Installation via PPA (Personal Package
Archive) :
Tout d'abord, vous devez inclure le PPA du
projet officiel dans votre système en exécutant la commande suivante :
sudo apt update && sudo apt-add-repository -y --update ppa:ansible/ansible
Pour vous assurer que le système prends en compte les packets ajouté dans l'étape citée si-dessus , actualisez à nouveau l'index des paquets de votre machine
:
sudo apt update
Votre machine est maintenant prête à installer
Ansible ; vous pouvez l'installer en exécutant la commande suivante :
sudo apt install ansible -y
Vous pouvez vérifier l'installation par cette
commande :
ansible --version
Mise en place du fichier d'inventaire du nœud de contrôle :
Le fichier d'inventaire est constitué d'informations sur les machines/systèmes/serveurs hôtes que vous allez gérer avec Ansible et il n'y a absolument aucune restriction quant au nombre d'hôtes que vous pouvez ajouter à votre nœud de contrôle, pour les hôtes elles peuvent être organisées en groupes et sous-groupes plus petits selon votre structure d'organisation ou les exigences du système d'information.
Dans le fichier d'inventaire, vous devrez souvent définir diverses variables, qui régissent le fonctionnement de votre playbook ;
Par exemple, ansible_python_interpreter est l'une de ces variables que vous allez utiliser régulièrement.
Vous pouvez trouver le fichier d'inventaire Ansible dans le répertoire /etc/ansible/hosts comme illustré dans l'image ci-dessous.
Dans le sous-groupe all:vars, nous utilisons ansible_python_interpreter comme paramètre d'hôte, qui sera invoqué pour tous les hôtes spécifiés sous le groupe webservers. La raison est que nous voulons que les machines du groupe webservers utilisent la version 3 de python et non la 2, même si la version par défaut dans ubuntu 20.04 est la 3.
Vous pouvez consulter linventaire des machines en exécutant la commande suivante :
Configuration des clés SSH
Vous devez maintenant copier la clé ssh sur vos hôtes Ansible. Avant d'exécuter la commande ssh-copy, assurez-vous que vous avez accès à vos serveurs distants. Pour copier la clé sur votre hôte distant, utilisez cette commande ;
Maintenant à partir du nœud de contrôle Ansible vous pouvez essayer la connectivité vers vos serveurs listés dans l'inventaire Ansible comme illustré dans l'image ci-dessous
Vous pouvez aussi tester la connectivité ssh sans mot de passe en vous connectant sur l'une des hotes distante ou vous avez copié la clé ssh
Dans l'exemple ci-dessous on va tester l'exécution d'une commande "ps" qui affichera les processus en cours d'exécution sur les serveurs gérés avec la commande : ansible all -a "ps" -u walid
Voilà, a cette étape vous êtes prêt à écrire vos playbook et à travailler sur Ansible !