Retour au blog

Automatisation de la configuration du serveur à l'aide d'Ansible et d'Ubuntu 20.04

Automatisation de la configuration du serveur à l'aide d'Ansible et d'Ubuntu 20.04

Introduction

De nos jours, les serveurs doivent être créés et détruits très fréquemment. En effet, par moments, les serveurs subissent une charge d'exécution importante alors qu'à d'autres moments la charge diminue, gaspillant ainsi les ressources du système. Un exemple courant est celui des sites de commerce électronique pendant les périodes de fêtes qui attirent beaucoup de trafic. Lorsque la nature de l'application est d'être évolutive, il est toujours nécessaire de disposer d'outils de gestion de configuration pour faciliter le processus global de création de serveurs. Ansible est un excellent outil de gestion de configuration qui automatise la création de serveurs à l'aide de procédures standard, réduisant ainsi les erreurs humaines.

Ansible ne nécessite pas l'installation de logiciels spécifiques sur les nœuds des serveurs. Il dispose de tous les outils nécessaires pour écrire, construire et faciliter l'automatisation des scripts. Ce tutoriel explique en détail comment utiliser Ansible pour automatiser les étapes contenues dans notre tutoriel Comment configurer votre serveur Ubuntu..

Prérequis

Pour compléter ce guide, nous utiliserons Ubuntu 20.04. De plus, vous aurez également besoin de :

  • Un nœud de contrôle Ansible: Une machine Ubuntu exécutant la dernière version d'Ubuntu. Le binaire maître d'Ansible doit être installé et en cours d'exécution sur cette machine. Cette machine doit pouvoir se connecter aux nœuds Ansible. Pour ces connexions, vous devez utiliser des clés SSH. Pour éviter les problèmes lors de la connexion, assurez-vous que votre nœud de contrôle Ansible a un pare-feu activé. Si vous avez besoin d'aide, consultez notre blog sur l'Installation et configuration d'Ansible sur Ubuntu 20.04.

  • Hôtes Ansible: Un ou plusieurs hôtes sont nécessaires pour s'y connecter. Les hôtes sont essentiellement les nœuds gérés dans Ansible. Ceux-ci doivent être des serveurs Ubuntu.

Fonctions du Playbook Ansible

Vous pouvez configurer manuellement toutes les étapes mentionnées ci-dessous. Cependant, nous allons automatiser cette exécution. Lorsque vous exécuterez ce playbook, il effectuera les opérations ci-dessous sur votre machine :

  1. Il installera aptitude, qui est préféré par Ansible comme gestionnaire de paquets.

  2. Il créera un groupe d'administration wheel avec des permissions sudo sans mot de passe.

  3. Il créera un nouvel utilisateur sudo.

  4. Il copiera une clé SSH locale dans le fichier authorized_keys. Ceci est destiné à être utilisé pour un nouvel utilisateur administrateur sur un hôte distant.

  5. Il désactivera l'authentification par mot de passe pour l'utilisateur root.

  6. Il installera les paquets nécessaires.

  7. Il configurera le pare-feu UFW pour autoriser uniquement les connexions SSH. Toutes les autres connexions seront bloquées.

Une fois l'exécution du Playbook terminée, un nouvel utilisateur sera disponible. Vous pourrez utiliser cet utilisateur pour vous connecter au système.

Utilisation du Playbook Ansible

Pour configurer le serveur, vous aurez besoin du playbook de configuration initiale du serveur et de ses dépendances. Si vous l'utilisez pour la première fois, vous devrez cloner le dépôt à l'aide du lien ci-dessous :

Si le dépôt existe déjà sur votre système, exécutez la commande ci-dessous pour obtenir les dernières mises à jour :

Vous obtiendrez la structure de fichiers ci-dessous sur votre machine :

Voici la description des fichiers :

  • vars/default.yml: Ce fichier contient les variables pour configurer le nœud Ansible.

  • playbook.yml: Ce fichier contient les tâches à exécuter sur le serveur.

Le fichier vars/default.yml ressemble à ceci :

Voici la description de ces variables. Si vous souhaitez les modifier, vous pouvez remplacer leurs valeurs par les vôtres :

  1. create_user: C'est l'utilisateur qui est créé. Cet utilisateur dispose de privilèges sudo.

  2. copy_local_key: Ceci contient le chemin d'accès à la clé publique SSH locale. Elle sera copiée sur le serveur distant sous le nom de authorized_key.

  3. sys_packages: Si vous souhaitez installer un ou plusieurs paquets sur votre serveur, indiquez-les ici sous forme de tableau.

Une fois que vous avez modifié ce fichier, enregistrez le contenu. Après cela, dans nano, appuyez sur CTRL+X , Y. Puis, ENTRÉE pour enregistrer le contenu du fichier.

Vous êtes maintenant prêt à exécuter ce playbook sur plusieurs serveurs. Par défaut, les Playbooks sont prêts à être exécutés sur les serveurs de votre inventaire. Si vous souhaitez utiliser le Playbook sur certains serveurs spécifiques, vous pouvez utiliser l'option -l . Supposons maintenant que le serveur distant possède plusieurs utilisateurs, vous pouvez utiliser l'option -u pour indiquer à quel utilisateur se connecter.

Si le nom de votre serveur est my_server et le nom d'utilisateur est my_user, exécutez ensuite la commande ci-dessous pour l'exécuter sur les nœuds Ansible :

Vous obtiendrez une sortie semblable à ceci :

Une fois cette exécution terminée, vous pouvez vous connecter à l'aide de la commande ci-dessous :

Rappelez-vous que my_user était le nom que nous avions utilisé dans le fichier vars/default.yml. Vous devrez également remplacer l'adresse IP du serveur par l'adresse IP de votre serveur dans la commande ci-dessus. Si vous aviez fourni la variable copy_local_key pour pointer vers une clé SSH personnalisée, spécifiez l'emplacement avec l'option -i :

Ensuite, connectez-vous à votre serveur pour vérifier les règles du pare-feu UFW :

Vous obtiendrez la sortie ci-dessous :

La sortie ci-dessus confirme que le pare-feu UFW a été configuré avec succès. C'était la dernière étape de notre playbook. Si cela est effectué correctement, cela signifie que l'exécution a réussi.

Le contenu du Playbook Ansible

Les fichiers du Playbook que nous avons utilisés dans ce tutoriel sont hébergés sur ansible-playbooks/setup_ubuntu1804 at master · do-community/ansible-playbooks · GitHub. Si vous souhaitez voir le contenu de chaque fichier pour l'utiliser ou le modifier, cliquez sur le bouton Raw en haut de chaque script.

Pour référence rapide, nous partagerons le contenu complet du Playbook ainsi que les fichiers correspondants :

  • vars/default.yml

Ce fichier contient les valeurs qui seront utilisées par les tâches du playbook. Celles-ci incluent des valeurs telles que le nom de l'utilisateur, les privilèges, les clés SSH, les paquets à installer dans le cadre de la configuration initiale, et ainsi de suite :

  • playbook.yml

Le playbook.yml contient les tâches à exécuter. Tout d'abord, le fichier répertorie tous les hôtes à cibler. Si vous souhaitez spécifier tous les serveurs, définissez la valeur de cette clé sur all. Ensuite, si vous souhaitez spécifier les tâches à exécuter avec les privilèges sudo, vous définissez la valeur de la variable become: true. Enfin, ce fichier doit inclure le contenu du vars/default.yml ci-dessus. Nous les incluons ensuite pour charger les paramètres de ce fichier :

Conclusion

L'automatisation est essentielle en informatique, car elle garantit que tous les processus sont exempts d'erreurs et respectent les pratiques et procédures standard. Étant donné que la plupart des logiciels actuels sont distribués via le Web et ont une nature distribuée, la création de nouveaux serveurs est devenue une tâche quotidienne, par exemple pour différents environnements tels que le staging ou la production, ou même des environnements de démonstration.

Dans ce tutoriel, nous avons démontré comment automatiser des serveurs à l'aide d'Ansible, un outil puissant et facile à utiliser qui peut vous faire gagner beaucoup de temps.

Bonne informatique !

author

Shreyas Patil

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.