Ansible : Automatisation, Orchestration et Déploiement
Installation de Ansible sur CentOS et préparation des Nodes
Architecture réseau
Dans la suite de ce tutoriel, nous allons utiliser le Système d’exploitation CentOS 7 comme nœud de contrôle .
Désormais, nous utiliserons exclusivement le terme “Node Manager” pour désigner le nœud de contrôle .
L’architecture que nous allons utiliser est décrite dans le schéma ci-dessous :
Pour suivre le tutoriel à la lettre, il faut faudra :
- Un hyperviseur ( dans notre cas il s’agit de VM Ware Worstation 16 Pro, vous pouvez utiliser celui qui vous plaît ) .
- Un Node Manager (dans notre cas c’est CentOS 7, mais vous pouvez choisir tout système qui vous convient ) .
- 4 node clients (tel que cela est décrit sur l’image ci-dessus ) .
Il faudra ensuite mettre les 4 nœuds dans le même réseau que le Node Manager (connecté à un même Switch virtuel ) .
Le Node Manager doit avoir accès à la connexion internet (via un accès par pont ou un NAT . )
À partir d’ici, il faudrait que tous les PC clients soient accessibles via une connexion SSH .
Pour tester la connexion SSH entre le Node-manager et vos Nodes-clients, vous pouvez utiliser la commande de l’exemple ci-dessous :
exemple : connexion SSH entre mon le Node-manager et le node4
(La commande doit être tapée sur le Node-Manager uniquement ) .
La connexion entre le Node-Manager et le nœud contrôlé est bien active . On peut à présent passer à l’installation de Ansible sur notre nœud central .
Il existe trois méthodes d’installations de Ansible :
— installation via les packages logiciels sur un système Linux ;
— installation via la commande pip de Python dans un environnement virtuel ( virtualenv ) ou pas ;
— installation via les sources officielles (Archives ou Git) maintenues par Red Hat.
Nous allons utiliser la première méthode d’installation (via les packages sur un système Linux). mais nous décrirons la procédure d’installation des autres méthodes dans un autre chapitre de ce cours .
Ansible aura besoin des paquets epel-release pour fonctionner correctement . il faut donc également les installer .
- Installation de epel-release : yum install epel-release (n’oubliez pas de passer en mode sudo si nécessaire )
- Installation de Ansible : sudo yum install ansible
- Vérification de la version de Ansible installée : ansible –version
- Création de l’utilisateur qui va gérer ansible .
Nous allons à présent créer un utilisateur qui sera chargé de gérer les configurations . il sera nommé user–ansible et doit être crée sur tous les nodes (managé et manageur ) .
Ainsi, sur le Node-Manager et sur tous les nodes-clients, on crée cet l’utilisateur avec la commande : useradd user-ansible .
Puis on change le mot de passe avec la commande passwd user-ansible
Surtout, n’oubliez pas d’effectuer cette opération sur tous les nodes-clients et sur le nœud de contrôle .
Particularité du node Windows
- Pour le node-client Windows, il faut entrer la commande suivante dans PowerShell, afin de créer l’utilisateur et de lui attribuer les droits d’administration .
Création : net user /add user-ansible ansible
Attribution au group admin : net localgroup administrateur user-ansible /add
- la connexion SSH entre un PC linux et un hôte Windows n’est pas possible car les systèmes d’exploitations Windows n’ont pas de ssh natif .
Sur les hôtes Windows qui vont être domptés par Ansible, il est nécessaire de configurer la gestion à distance grâce à l’outil WinRM. Pour cela, il faudra : Activer et configurer WinRM et Autoriser WinRM dans le Pare-feu Windows
- Activation et configuration de WinRM Windows Remote Management )
La configuration de WinRM soit manuellement, soit à travers un script de configuration automatique fournit sur le GitHub de Ansible .
Je vais utiliser la configuration manuelle.
WinRM (Windows Remote Management) repose sur du HTTP et il est l’implémentation chez Microsoft du standard WS-Management, basé sur SOAP. Ceci implique qu’il n’est plus un protocole RPC et peut donc passer plus facilement les firewalls. Au niveau des ports utilisés, on en trouve deux : 5985 (http) et 5986 (https) . Il est préférable d’utiliser le port 5986 basé sur une connexion HTTPS, qui sera plus sécurisée.
Pour vérifier si l’utilitaire WinRM existe sur votre poste, il faut entrer la commande suivante dans PowerShell (en mode administrateur ) : Get-Service WinRM
On peut constater que le service est désactivé . Il faut donc l’activer avec la commande : Enable-PSRemoting
Si on refait la commande Get-Service WinRM, on constatera que le service est activé cette fois-ci (en dessous du status on a “Running)
- Activation du pare-feu Windows defender : veuillez suivre les étapes de la figure suivante :
Résumé :
L’installation de Ansible a été faite correctement sur le Node-manager.
L’utilisateur user-ansible a été crée sur chaque node-client.
Voici le plan d’adressage que j’ai choisi :
Node-manager (CentOS) : 192.168.2.10 /24
node1 (Ubuntu) : 192.168.2.11 /24
node2 (Debian) : 192.168.2.12 /24
node3 (Windows11) : 192.168.2.13 /24
node4 (FreeBSD) : 192.168.2.14 /24
Test de connectivité entres les équipements
Tous les nodes doivent de “pinger” avec succès entre eux .
Test du ping entre le Node-manager et les 4 autres nodes clients
On peut à présent passer à la génération des clés SSH (qui nous permettront de nous connecter sans mot de passe ) .