Notes et transcriptions du cours “Utilisez Ansible pour automatiser vos tâches de configuration” disponible sur la plateforme Openclassrooms.
Avant de commencer, voici un peu de contexte pour comprendre quel rôle vous aurez dans ce cours. Ce rôle nous permettra de rendre concret chacun des concepts que nous aborderons !
Praxis est une société coopérative et participative (SCOP) qui développe une plateforme permettant de cartographier les cavistes qui vendent du vin totalement naturel.
Vous êtes ingénieur DevOps chez Praxis. Parmi les salariés de l’entreprise, il y a plusieurs experts DevOps qui ont besoin de partager de l'information et de faire circuler les bonnes pratiques de développement au sein de l’entreprise.
Comme vous êtes le petit nouveau, une décision collégiale vous a désigné comme la personne qui allait mettre en place un wiki pour répondre à ce besoin !
Une recherche rapide sur le web vous permet de comprendre qu’un wiki est un gestionnaire de contenu orienté rédaction collaborative et de partage d'informations structurées. Ça y est, vous tenez votre première mission !
Mais bien évidemment, de nombreuses questions vous viennent à l’esprit :
La méthodologie à suivre pour répondre à toutes ces questions est de se concentrer sur des critères prioritaires qui sont à définir en fonction du contexte de l’entreprise.
Dans votre cas, vous faites le choix d’installer MediaWiki, car c’est une solution open source éprouvée et modulaire. Ce qui colle parfaitement avec le contexte de l’entreprise.
La meilleure solution pour comprendre comment installer MediaWiki est de se rendre sur le site de MediaWiki à la recherche du guide d'installation.
En synthèse, vous résumez l’installation de MediaWiki avec les étapes suivantes :
Maintenant que vous avez la bonne recette pour installer MediaWiki, vous allez élaborer l’architecture technique de MediaWiki.
Pour être conforme aux critères de départ, vous avez besoin de mettre en place une architecture modulaire. Vous faites donc le choix d’installer un serveur Linux (Debian) avec un service web (Apache, PHP) et un serveur Linux (Debian) avec une base de données (MariaDB). Vous utilisez Centos, Apache et MariaDB, car ces solutions sont compatibles avec l'installation de MediaWiki, et elles sont déjà utilisées dans l’entreprise.
Voici le schéma de l’architecture :
Pourquoi séparer les services sur deux serveurs, alors qu'un serveur aurait pu suffire ?
Eh bien, dans une optique de scalabilité, il est toujours intéressant de séparer les services et d'intégrer une architecture modulaire dès la conception. Ainsi, il sera très facile pour faire évoluer l’infrastructure, d'ajouter un serveur supplémentaire. Par exemple, si un seul serveur web n’est pas suffisant pour absorber tout le trafic web, alors il sera possible d’ajouter un serveur web supplémentaire. Avec Ansible, c'est extrêmement simple.
Tout est calé ! Il faut maintenant se lancer et installer MediaWiki.
Mais, pourquoi faire une installation manuelle alors que vous pourriez scripter le déploiement et l’automatiser ? Vous êtes un pro de l’automatisation, après tout !
C’est d’ailleurs le principe de l’Infrastructure-As-Code; c’est un concept qui permet de gérer les tâches d’administration automatiquement, via du code, à l'aide de fichiers de définition plutôt que faire des traitements manuels. C’est très populaire en ce moment, c’est donc un bon moyen de s’y mettre.
Ainsi, vous pourrez réutiliser ces scripts pour un autre déploiement ; vous gagnerez du temps et vous pourrez également partager les scripts avec vos collègues.
Avec quel outil allez-vous automatiser le déploiement ?
Il faut que vous trouviez un outil de gestion de configuration. Il en existe plusieurs, mais les plus connus et les plus utilisés sont Chef, Puppet et Ansible.
Ils ont tous des avantages et des inconvénients ; le choix doit porter sur :
Comme il n’y a pas encore d’outil de gestion de configuration dans l’entreprise, vous choisissez Ansible pour sa simplicité de prise en main pour vous et les équipes.
En effet, vous connaissez Python, vous avez pour habitude de privilégier la simplicité, et vous ne voulez pas que l'intégration de cet outil soit une contrainte sur les serveurs. Vous imaginez même proposer d’utiliser Ansible pour la gestion de l’ensemble de l'infrastructure de l’entreprise.
Vous vous concentrez sur l’installation de MediaWiki, vous laissez à l’adminsys en chef le soin de mettre en place l’infrastructure des serveurs ; c’est-à-dire installer Linux (Debian) et mettre en place le réseau entre les deux serveurs.
L’adminsys vous donnera alors un compte root sur les 2 serveurs et leurs adresses IP.
PermitRootLogin yes
dans le fichier /etc/ssh/sshd_config
.
Vous allez donc devoir automatiser les étapes suivantes avec Ansible:
Il faudra donc automatiser les 6 étapes nécessaires à l’installation de MediaWiki.
Dans ce chapitre, vous avez découvert ce que vous pouvez automatiser :
Dans le prochain chapitre, vous allez apprendre à installer et utiliser Ansible dans le contexte de déploiement de la solution MediaWiki. Vous comprendrez comment fonctionne Ansible, et les prérequis nécessaires à un déploiement Ansible.