Ansible est un utilisé pour gérer et administrer plusieurs serveurs depuis un ordinateur central. C’est un outil de gestion de serveur. Ansible n’a pas besoin de configuration du côté du serveur comme Chef ou Puppet. Il vous suffit d’installer Ansible sur votre ordinateur et de gérer ou d’administrer les serveurs via SSH. C’est très simple et facile à utiliser. Dans cet article, je vais vous montrer comment installer et utiliser Ansible sur CentOS 8. Alors, commençons.

Installation d’Ansible:

Ansible est disponible dans le dépôt EPEL de CentOS 8. Ainsi, vous pouvez facilement installer Ansible sur CentOS 8.

D’abord, mettez à jour le cache du dépôt de paquets DNF avec la commande suivante :

$ sudo dnf makecache

Maintenant, pour activer le dépôt EPEL, installez le paquet epel-release avec la commande suivante :

$ sudo dnf install epel-release

Pour confirmer l’installation, appuyez sur Y et ensuite sur <Enter>.

Le paquet epel-release devrait être installé et le dépôt EPEL devrait être activé.

Maintenant, mettez à nouveau à jour le cache du dépôt de paquets DNF avec la commande suivante :

$ sudo dnf makecache

Maintenant, installez Ansible avec la commande suivante :

$ sudo dnf install ansible

Pour confirmer l’installation, appuyez sur Y et ensuite sur <Enter>.

DNF devrait commencer à télécharger tous les paquets requis depuis internet.

Il peut vous être demandé d’accepter la clé GPG du dépôt EPEL. Appuyez sur Y et ensuite sur <Enter> pour l’accepter.

DNF devrait commencer à installer tous les paquets téléchargés.

À ce stade, Ansible devrait être installé.

Maintenant, exécutez la commande suivante :

$ ansible –version

Comme vous pouvez le voir, j’exécute Ansible 2.9.3 et cela fonctionne très bien.

Configuration des serveurs pour Ansible:

Pour gérer ou administrer des serveurs avec Ansible, vous devez avoir un serveur SSH installé et en cours d’exécution sur les serveurs. Le port SSH des serveurs doit être ouvert et les serveurs doivent être accessibles depuis l’hôte Ansible. C’est la seule exigence pour utiliser Ansible.

Dans cet article, je vais utiliser 4 machines virtuelles (VM) (2 VM Ubuntu Server 18.04 LTS et 2 VM Debian 10) pour démontrer les bases de la gestion et de l’administration des serveurs Ansible.

Les 4 VM sont :

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Vous pouvez utiliser les adresses IP des serveurs pour les gérer ou les administrer avec Ansible. Vous pouvez également utiliser les noms DNS des serveurs également.

Dans cet article, je vais utiliser le fichier /etc/hosts pour la résolution DNS des adresses IP des VMs.

Si vous voulez suivre, ouvrez votre fichier /etc/hosts avec l’éditeur de texte vi comme suit :

$ sudo vi /etc/hosts

Maintenant, ajoutez les lignes comme marqué dans la capture d’écran ci-dessous et enregistrez le fichier.

Maintenant, générez une clé SSH sur votre hôte CentOS 8 Ansible comme suit :

$ ssh-keygen

Prenez <Enter>.

Prenez <Enter>.

Pressez <Entrée>.

La clé SSH devrait être générée.

Maintenant, vous devez télécharger la clé SSH sur tous les serveurs que vous voulez gérer avec Ansible.

Pour copier la clé SSH sur le serveur vm1.linuxhint.local, exécutez la commande suivante :

$ ssh-copy-id [email protected]

Maintenant, tapez oui et appuyez sur <Enter>.

Maintenant, tapez le mot de passe de connexion de la vm1.linuxhint.local VM et appuyez sur <Enter>.

La clé SSH devrait être copiée.

Faites la même chose pour le serveur vm2.linuxhint.local, vm3.linuxhint.local et vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Une fois que vous avez copié la clé SSH sur les VM, vous devriez être en mesure d’y accéder par SSH sans mot de passe comme vous pouvez le voir dans la capture d’écran ci-dessous.

Maintenant, exécutez la commande suivante sur chaque serveur pour autoriser l’accès sudo sans mot de passe pour l’utilisateur de connexion. Ceci est nécessaire pour qu’Ansible puisse exécuter toute commande root.

$ echo « $(whoami) ALL=(ALL) NOPASSWD:ALL » | sudo tee /etc/sudoers.d/$(whoami)

Tous les serveurs sont maintenant prêts à être configurés ou gérés depuis Ansible.

Utilisation d’Ansible:

Ansible conserve une liste de tous les hôtes qu’il gère dans un fichier appelé fichier d’inventaire. Le fichier d’inventaire Ansible est juste un simple fichier texte brut.

Créons d’abord un nouveau répertoire de projet Ansible ~/ansible/, puis nous allons créer notre fichier d’inventaire.

$ mkdir ~/ansible

Maintenant, naviguez vers le répertoire ~/ansible.

$ cd ~/ansible

Maintenant, créez un fichier d’inventaire Ansible comme suit. Vous pouvez appeler ce fichier comme vous le souhaitez. Je vais l’appeler hosts.

$ vi hosts

Maintenant, vous pouvez ajouter vos serveurs comme suit. Ici, l’option ansible_user est utilisée pour définir l’utilisateur qu’Ansible utilisera pour exécuter des commandes sur ces serveurs. C’est généralement l’utilisateur de connexion du serveur.

Vous pouvez également mélanger les adresses IP et les noms DNS des serveurs dans le fichier d’inventaire ainsi.

Vous pouvez également regrouper les serveurs. Ici, j’ai 2 groupes, webserver et dbserver.

Dans le groupe webserver, j’ai ajouté des serveurs vm1 et vm2. Dans le groupe dbserver, j’ai ajouté des serveurs vm3 et vm4.

Une fois le fichier d’inventaire créé, vous pouvez utiliser le fichier d’inventaire en utilisant l’option -i d’Ansible.

Vous pouvez lister tous les hôtes du fichier d’inventaire comme suit :

$ ansible -i hosts –list-hosts all

Vous pouvez vérifier si tous les hôtes sont actifs comme suit :

$ ansible -i hosts –list-hosts -m ping all

Comme vous pouvez le voir, tous les hôtes sont actifs.

Vous pouvez également envoyer un ping à tous les hôtes d’un même groupe.

$ ansible -i hosts –list-hosts -m ping webserver

Vous pouvez exécuter des commandes shell en utilisant Ansible comme suit :

$ ansible -i hosts -m shell -a ‘command’ <all|groupName>

Vous pouvez également exécuter des commandes shell (avec des privilèges sudo) comme suit .

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘command’ &lt;all
|groupName&gt;

Par exemple, vous pouvez mettre à jour le cache du dépôt de paquets APT sur les hôtes du groupe webserver en utilisant Ansible comme suit :

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘apt update’ webserver

Comme vous pouvez le voir, le cache du dépôt de paquets APT est mis à jour pour tous les hôtes du groupe webserver.

Essayons d’installer le serveur web Apache 2 sur tous les hôtes du groupe webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a
‘apt install -y apache2’ webserver

Le serveur web Apache devrait être installé sur tous les hôtes du groupe webserver.

Comme vous pouvez le voir, le serveur web Apache fonctionne sur tous les hôtes du groupe webserver.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘curl -sI
http://localhost’ webserver

De la même manière, vous pouvez exécuter n’importe quelle commande sur tous les hôtes du groupe dbserver.

$ ansible -i hosts -m shell -a ‘lsb_release -a’ dbserver

Vous pouvez également utiliser Ansible Playbook pour gérer vos serveurs plus facilement. Ansible Playbook n’entre pas dans le cadre de cet article. Lisez la documentation d’Ansible pour plus d’informations sur Ansible Playbook.

Merci d’avoir lu cet article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.