Ansible permet d’automatiser la configuration et le déploiement d’applications sur des machines. L'avantage est qu'on peut ainsi dupliquer facilement et automatiquement une configuration sur autant de postes qu'on le souhaite ; ceci permet également, en cas de problème sur un poste, de redéployer automatiquement sa configuration initiale.
L'idée est donc de piloter la configuration et le déploiement d'applications sur des machines, appelées nodes dans le jargon d'Ansible, depuis un "noeud superviseur" ou node manager.
Vous aurez par conséquent besoin (a minima) de deux machines, configurées pour communiquer entre elles. Vous pouvez bien entendu pour cela réutiliser les deux machines Serveur et Client du TP "Réseau".
Si toutefois vous ne disposiez que d'une seule machine, ou que vous ayez eu des problèmes à faire communiquer vos VMs, le plus simple pour démarrer rapidement ce TP est de :
- cloner une machine en état de fonctionnement
- configurer une interface réseau sur chaque machine en mode Pont (ce qui permettra aux machines de se voir, d'aller sur Internet, et même d'être vues depuis la machine hôte).
💡 Si votre système d'exploitation hôte est un Linux, vous pouvez a priori vous en servir comme node manager, et vous n'avez donc besoin que d'une seule VM (le node).
💡 Par ailleurs, vous aurez besoin d'effectuer un certain nombre de copier-coller ; une connexion ssh sur vos VMs est donc indispensable. Pour rappel, Windows 10 intègre désormais un client ssh natif, et vous pouvez aussi utiliser cmder. De plus, aucune configuration particulière (en particulier, une redirection de port) n'est nécessaire si vos machines sont en mode Pont (puisque la machine hôte les "voit", vous pouvez vous y connecter directement en saisissant ssh AdresseIP).
OpenClassRooms propose depuis peu un cours complet et bien fait sur Ansible, organisé en trois parties. Votre objectif pour ce TP est de réaliser les deux premières parties (jusqu'au cours "Assemblez les opérations avec les playbooks pour automatiser le déploiement" inclus). Il s'agit d'un cours complètement guidé, il suffit principalement de suivre (et comprendre !!!) ce qui vous est demandé.
ℹ️ Les quiz ne sont pas à réaliser dans le cadre du TP. Vous êtes évidemment très fortement encouragés à y répondre pour parfaire votre connaissance d'Ansible !
- Adresses IP : les IP de vos machines ne correspondent pas nécessairement à celles utilisées dans le cours ; l'idéal aurait été de créer un réseau NAT, mais j'ai rencontré plusieurs problèmes (notamment de DNS) lorsque j'ai désactivé le DHCP de VirtualBox pour forcer les IP du cours. Vous pouvez sans problème utiliser les IP configurées dans le TP "Réseau" ou celles proposées par le mode "Pont", il faudra juste penser à faire les changements dans les fichiers de configuration d'Ansible quand ce sera nécessaire
- Vous n'utiliserez qu'un seul node sur lequel vous installerez tous les logiciels demandés
- Dans le cours, les nodes tournent sous CentOS et non sous Ubuntu, ce qui conduit à un certain nombre de différences qui deviendront claires au fur et à mesure de la lecture :
- l'auteur part du principe que vous disposez d'un compte root sur les nodes ; or, comme vous le savez, le compte root est désactivé par défaut sous Ubuntu. On peut tout à fait utiliser Ansible sans compte root (si l'on est sudoer), mais ceci nécessite de modifier des fichiers de configuration et risque d'induire de mauvaises manipulations dans le TP ; vous pouvez donc commencer par activer le compte root sur le node
- il n'existe pas de groupe wheel, utilisez le groupe sudo à la place
- il est à moment donné question de Python 2, mais cette version est obsolète et n'est plus installée par défaut depuis Ubuntu 20.04. Utilisez à la place la version de Python 3 disponible sur vos machines
- le gestionnaire de paquets sous Ubuntu est apt et non yum
- les scripts de configuration proposés doivent être en conséquence légèrement modifiés pour tourner sous Ubuntu. J'ai mis plusieurs scripts "corrigés" à disposition sur ce GitHub.
Written with StackEdit.