Dans ce laboratoire (lab), vous apprendrez à installer et configurer Ansible sur un système Ubuntu. Ansible est un outil d'automatisation open-source puissant qui simplifie la gestion de configuration, le déploiement d'applications et l'automatisation de tâches. À la fin de ce laboratoire, vous aurez Ansible installé et configuré, prêt à gérer efficacement des systèmes distants.
Mettre à jour les paquets du système
Avant d'installer tout nouveau logiciel, il est crucial de s'assurer que votre système dispose des dernières mises à jour. Cela permet d'éviter les conflits potentiels et de vous assurer que vous avez les derniers correctifs de sécurité.
Tout d'abord, mettez à jour les listes de paquets :
sudo apt update
Cette commande se connecte aux dépôts de logiciels d'Ubuntu et télécharge les informations sur les derniers paquets disponibles. Vous pourriez voir une sortie comme celle-ci :
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Ne vous inquiétez pas si vous voyez des lignes "Hit" ou "Get" - c'est normal et cela indique quelles informations de dépôt sont mises à jour.
Installer Ansible
Maintenant que votre système est à jour, vous pouvez procéder à l'installation d'Ansible. Les dépôts par défaut d'Ubuntu incluent Ansible, ce qui rend le processus d'installation simple.
Installez Ansible en utilisant la commande suivante :
sudo apt install ansible -y
Décortiquons cette commande :
sudo : Cela exécute la commande avec des privilèges administratifs, ce qui est nécessaire pour installer des logiciels.
apt install : Cela indique au gestionnaire de paquets d'installer un nouveau paquet.
ansible : C'est le nom du paquet que nous voulons installer.
-y : Ce paramètre répond automatiquement "oui" à toutes les invitations pendant l'installation.
Vous verrez une sortie montrant la progression de l'installation :
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Processing triggers for man-db (2.10.2-1)...
Ne soyez pas inquiets par la quantité de texte - cela montre simplement tous les dépendances qui sont installées avec Ansible.
Après avoir terminé l'installation, il est recommandé de vérifier que Ansible a été installé correctement. Vous pouvez le faire en vérifiant sa version :
ansible --version
Cette commande devrait afficher des informations sur la version d'Ansible installée :
Si vous voyez une sortie similaire à celle-ci, félicitations! Ansible est maintenant installé sur votre système.
Configurer SSH pour Ansible
Ansible utilise SSH pour communiquer avec les nœuds gérés. Pour rationaliser ce processus et améliorer la sécurité, nous allons configurer l'authentification basée sur des clés SSH. Cela permet à Ansible de se connecter à d'autres machines sans avoir à saisir un mot de passe à chaque fois.
ssh-keygen : C'est le programme qui génère la paire de clés.
-t rsa : Cela spécifie que nous voulons une clé de type RSA.
-b 4096 : Cela définit la taille de la clé à 4096 bits, ce qui est très sécurisé.
-C "[email protected]" : Cela ajoute un commentaire à la clé, généralement une adresse e-mail.
Lorsque vous exécutez cette commande, vous verrez des invitations :
Generating public/private rsa key pair.
Enter file in which to save the key (/home/labex/.ssh/id_rsa):
Appuyez sur Entrée pour accepter l'emplacement par défaut.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Pour ce laboratoire, vous pouvez laisser le mot de passe vide en appuyant deux fois sur Entrée. Dans un environnement de production, vous devriez utiliser un mot de passe fort.
Vous verrez une sortie confirmant la création de la clé :
Your identification has been saved in /home/labex/.ssh/id_rsa
Your public key has been saved in /home/labex/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:abcdefghijklmnopqrstuvwxyz1234567890ABCDEFG [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| . |
| .. |
| o |
| . o |
| + = S |
| + * + |
| . = o. |
|. + = |
| +.+. |
+----[SHA256]-----+
Ensuite, nous devons copier cette clé sur la machine locale. Dans un scénario réel, vous la copieriez sur des hôtes distants, mais pour ce laboratoire, nous utiliserons la machine locale :
ssh-copy-id labex@localhost
Vous serez invité à saisir le mot de passe de l'utilisateur labex. Pour cet environnement de laboratoire, vous pouvez trouver le mot de passe en ouvrant le terminal VNC et en exécutant :
echo $PASSWORD
Note : Vous devez exécuter cette commande dans le terminal VNC. Le mot de passe n'est disponible que dans le terminal VNC et n'est pas accessible via SSH ou le terminal web.
Saisissez le mot de passe lorsque ssh-copy-id vous le demande. Vous devriez voir une sortie comme :
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
labex@localhost's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'labex@localhost'"
and check to make sure that only the key(s) you wanted were added.
Pour vérifier que la configuration de la clé SSH a réussi, essayez de vous connecter en SSH à la machine locale :
ssh labex@localhost
Si la clé a été correctement configurée, vous devriez pouvoir vous connecter sans être invité à saisir un mot de passe. Vous verrez une nouvelle invite de commande. Tapez exit pour revenir à votre session d'origine.
Créer et configurer l'inventaire Ansible
L'inventaire Ansible est un fichier qui définit les hôtes et les groupes d'hôtes sur lesquels les commandes, les modules et les tâches d'un playbook s'exécutent. C'est comme un carnet d'adresses pour Ansible, lui indiquant quelles machines il peut contacter.
Tout d'abord, créez le répertoire de configuration Ansible :
sudo mkdir -p /etc/ansible
Cette commande crée le répertoire /etc/ansible s'il n'existe pas déjà. Le paramètre -p garantit qu'elle ne génère pas d'erreur si le répertoire est déjà présent.
Maintenant, créez et modifiez le fichier d'inventaire :
sudo nano /etc/ansible/hosts
Cela ouvre l'éditeur de texte nano. Si vous n'avez jamais utilisé nano, ne vous inquiétez pas, c'est un éditeur simple et convivial.
[local] et [webservers] sont des noms de groupes. Vous pouvez les utiliser pour organiser vos hôtes.
localhost ansible_connection=local indique à Ansible de se connecter directement à la machine locale, sans utiliser SSH.
web1 ansible_host=localhost ansible_connection=ssh ansible_user=labex configure un hôte appelé web1. Pour ce laboratoire, il se connecte également à localhost, mais en utilisant SSH et en se connectant en tant qu'utilisateur labex.
Pour enregistrer le fichier dans nano, appuyez sur Ctrl+X, puis sur Y, et enfin sur Entrée.
Pour vérifier le contenu du fichier d'inventaire, utilisez la commande cat :
cat /etc/ansible/hosts
Vous devriez voir le contenu que vous venez d'ajouter au fichier.
Tester la connectivité Ansible
Maintenant que nous avons installé et configuré Ansible, testons la connectivité pour nous assurer que tout fonctionne correctement.
Tout d'abord, envoyons un ping à tous les hôtes de notre inventaire :
ansible all -m ping
Décortiquons cette commande :
ansible : C'est la commande de base pour exécuter Ansible.
all : Cela indique à Ansible d'exécuter la commande sur tous les hôtes de l'inventaire.
-m ping : Cela spécifie le module Ansible à utiliser. Le module ping vérifie si les hôtes répondent.
Si vous voyez "SUCCESS" pour les deux hôtes, cela signifie qu'Ansible peut se connecter et communiquer avec ces hôtes avec succès.
Ensuite, essayons d'exécuter une commande simple sur tous les hôtes :
ansible all -a "uptime"
Cette commande utilise le module de commande d'Ansible (le module par défaut lorsqu'aucun module n'est spécifié avec -m) pour exécuter la commande uptime sur tous les hôtes. La commande uptime indique depuis combien de temps le système est en marche.
Cette sortie montre qu'Ansible a exécuté avec succès la commande uptime sur les deux hôtes. Le statut "CHANGED" indique que la commande a été exécutée avec succès et a produit une sortie.
Astuce : Vous pourriez voir un avertissement de dépréciation "Distribution ubuntu 22.04 on host localhost should use /usr/bin/python3", qui est dû au changement de l'interpréteur Python par défaut dans les versions plus récentes d'Ubuntu.
Si vous souhaitez supprimer cet avertissement, vous pouvez ajouter la ligne suivante au fichier /etc/ansible/hosts :
Cette ligne indique à Ansible d'utiliser explicitement Python 3 pour tous les hôtes. Après avoir ajouté cette ligne, vous pouvez réexécuter la commande ansible all -m ping pour vérifier que l'avertissement n'apparaît plus.
Résumé
Félicitations! Dans ce laboratoire, vous avez réussi à installer et configurer Ansible sur un système Ubuntu. Vous avez appris à :
Mettre à jour les paquets du système pour garantir un environnement stable pour Ansible.
Installer Ansible à l'aide du gestionnaire de paquets.
Configurer l'authentification basée sur des clés SSH pour des connexions sécurisées sans mot de passe.
Créer et configurer un fichier d'inventaire Ansible pour définir les hôtes gérés.
Tester la connectivité Ansible et exécuter des commandes de base sur les hôtes gérés.
Ces étapes de base constituent un point de départ solide pour utiliser Ansible afin d'automatiser diverses tâches informatiques, allant de l'exécution simple de commandes à la gestion complexe de configurations et au déploiement d'applications.
N'oubliez pas que ce laboratoire a utilisé le localhost à des fins de démonstration, mais dans des scénarios réels, vous géreriez généralement plusieurs hôtes distants. Les principes et les commandes que vous avez appris ici peuvent être facilement appliqués à la gestion de serveurs distants dans votre infrastructure.
Au fur et à mesure de votre progression avec Ansible, vous découvrirez son pouvoir pour rationaliser les opérations et améliorer la productivité dans l'administration système et les pratiques DevOps. Envisagez d'explorer ensuite les playbooks Ansible, qui vous permettent d'automatiser des tâches et des flux de travail plus complexes.
We use cookies for a number of reasons, such as keeping the website reliable and secure, to improve your experience on our website and to see how you interact with it. By accepting, you agree to our use of such cookies. Privacy Policy