MINISTERE DE L’ENSEIGNEMENT REPUBLIQUE TOGOLAISE
SUPERIEUR ET DE LA RECHERCHE Travail – Liberté – Patrie
Tel : 22 26 24 24 / 22 26 25 25
E-mail : [email protected]
Site web : www.defitech.tg
MEMOIRE DE FIN DE FORMATION POUR L’OBTENTION DU DIPLOME DE
LICENCE PROFESSIONNELLE
Domaine : Sciences et Technologies
Option : Systèmes et Réseaux Informatiques
THEME :
AUTOMATISATION DE LA CONFIGURATION D'UNE
APPLICATION : UTILISATION DE ANSIBLE
APPLIQUE A UN SERVEUR DE MESSAGERIE
Rédigé et présenté par :
Hans Eyram SODAHLON
Étudiant à DEFITECH
Maître de stage : Directeur de mémoire :
M. Nazif ADJARI M. Agbégniho KPAKPOVI
Responsable Informatique à TECH-PRO Enseignant à DEFITECH
Promotion : 2020 - 2023
DEDICACES
DEDICACES
Je dédie ce mémoire à :
- ma chère mère Kafui Florence OGOUFOUMI qui, par sa bravoure, a su faire de
moi l'homme que je suis devenu;
- mon père Mawulikplimi Kodjovi Moise SODAHLON qui a été mon plus grand
modèle.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON ii
REMERCIEMENTS
REMERCIEMENTS
Nos remerciements vont à l'endroit de :
- Mme Akpé Ablavi ADJETE, Directrice de TECH-PRO, qui nous a ouvert les portes
de sa société pour notre stage ;
- M. Nazif ADJARI notre maître de stage, pour ses bonnes directives ;
- M. Agbégniho KPAKPOVI, notre Directeur de mémoire, Enseignant à DEFITECH
II, pour son encadrement, ses conseils et sa disponibilité tout au long de la
réalisation de ce projet ;
- le personnel de TECH-PRO pour leurs conseils et encouragements ;
- M. Ali Kossi Joachim AMOUZOU, Directeur Général de DEFITECH, pour ses
précieux conseils pour la réussite de la vie estudiantine ;
- le corps enseignant dont l’expertise et les conseils éclairés nous ont été précieux
durant les trois années d’études ;
- M. Kodjo GNAMALO, Assistant à la direction des études, pour ses conseils
pédagogiques ;
- mes ainés, mes camarades de promotion, mes amis et tous ceux qui à travers leurs
conseils et suggestions, m’ont permis de mener à bien ce travail ;
- mes oncles Evenyon DOVOR et Ayédam OGOUFOUMI pour leurs soutiens et
conseils ;
- tous les membres de ma famille pour leurs soutiens et conseils ;
- toutes les personnes qui de près ou de loin nous ont soutenu dans nos efforts et ont
contribué ainsi à la réalisation de ce rapport.
Nous tenons à exprimer sincère gratitude aux membres du jury qui ont bien voulu nous
honorer de leur présence.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON iii
AVANT PROPOS
AVANT PROPOS
À l'issue de sa formation à l’Institut Polytechnique DEFITECH, l’étudiant doit effectuer
un stage en entreprise. Le but de ce dernier est de permettre à chaque étudiant de
s'immerger dans la vie de l'entreprise d'une part, et d'aider à la rédaction du mémoire
d'autre part.
Une fois dans la structure d'accueil, l'étudiant devra résoudre un problème qu'il juge
pertinent et proposer ainsi une ou plusieurs solutions. C'est dans ce cadre que ce
document a été réalisé pour présenter l’ensemble des travaux effectués au tour du thème
« AUTOMATISATION DE LA CONFIGURATION D'UNE APPLICATION :
UTILISATION DE ANSIBLE APPLIQUE A UN SERVEUR DE MESSAGERIE ».
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON iv
RESUME
RESUME
À l'ère de la numérisation croissante, l'automatisation des tâches est devenue une pierre
angulaire de la gestion efficace des infrastructures informatiques. Ce mémoire explore en
profondeur le rôle de l'automatisation, avec une attention particulière portée à Ansible,
un outil open source puissant et polyvalent qui simplifie la gestion des configurations et
des déploiements. Le cœur de cette étude réside dans l'automatisation du déploiement du
service de messagerie Postfix, un composant essentiel de nombreuses infrastructures de
communication. Le choix de ce cas pratique n'est pas anodin, car les serveurs de
messagerie sont au cœur des communications modernes, qu'il s'agisse de courriers
électroniques professionnels ou personnels. Nous décrivons en détail chaque étape du
déploiement de Postfix, depuis l'installation initiale jusqu'à la configuration avancée, en
montrant comment Ansible simplifie et rationalise l'ensemble du processus.
En somme, ce mémoire tourne autour du thème « AUTOMATISATION DE LA
CONFIGURATION D'UNE APPLICATION : UTILISATION DE ANSIBLE
APPLIQUE A UN SERVEUR DE MESSAGERIE ». Il souligne l'importance de
l'automatisation pour la gestion des infrastructures informatiques et invite à une réflexion
sur son rôle en constante évolution dans le monde numérique.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON v
ABSTRACT
ABSTRACT
In the era of increasing digitalization, task automation has become a cornerstone of
effective IT infrastructure management. This dissertation explores the role of automation
in depth, with particular attention to Ansible, a powerful and versatile open-source tool
that simplifies the management of configurations and deployments. The heart of this
study lies in the automation of the deployment of the Postfix messaging service, an
essential component of many communications infrastructures. The choice of this
practical case is not trivial, because mail servers are at the heart of modern
communications, whether professional or personal emails. We detail each step of Postfix
deployment, from initial installation to advanced configuration, showing how Ansible
simplifies and streamlines the entire process.
In short, this dissertation revolves around the theme “AUTOMATING THE
CONFIGURATION OF AN APPLICATION: USE OF ANSIBLE APPLIED TO A
MESSAGING SERVER”. It highlights the importance of automation for the
management of IT infrastructures and invites reflection on its ever-changing role in the
digital world.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON vi
TABLE DES MATIERES
TABLE DES MATIERES
DEDICACES ...................................................................................................................... ii
REMERCIEMENTS ......................................................................................................... iii
AVANT PROPOS ............................................................................................................. iv
RESUME ............................................................................................................................ v
ABSTRACT ...................................................................................................................... vi
TABLE DES MATIERES ................................................................................................ vii
PARTICIPANTS AU PROJET ......................................................................................... xi
LISTE DES TABLEAUX ................................................................................................. xi
LISTE DES FIGURES ..................................................................................................... xii
LISTE DES SIGLES ET ABREVIATIONS ................................................................... xiii
INTRODUCTION GENERALE ........................................................................................ 1
CHAPITRE I :PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE
STAGE ................................................................................................................................ 3
I.1. INTRODUCTION .................................................................................................... 4
I.2. CADRE DE FORMATION : INSTITUT POLYTECHNIQUE DEFITECH .......... 4
I.2.1. PRESENTATION DE L’INSTITUT POLYTECHNIQUE DEFITECH .......... 4
I.2.2. HISTORIQUE .................................................................................................... 4
I.2.3. MISSION ............................................................................................................ 4
I.2.4. ACTIVITES ...................................................................................................... 5
I.2.5. FORMATIONS ................................................................................................. 5
I.2.6. STRUCTURE ORGANISATIONNELLE ........................................................ 6
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON vii
TABLE DES MATIERES
I.2.7. SITUATION GEOGRAPHIQUE ET CONTACTS .......................................... 6
I.3. PRESENTATION DU CADRE DU STAGE : TECH-PRO .................................... 7
I.3.1. PRESENTATION ET ACTIVITES ................................................................... 7
I.3.2. ORGANIGRAMME DE TECH-PRO ............................................................... 7
CHAPITRE II : ETUDE DU PROJET ............................................................................... 8
II.1. INTRODUCTION ................................................................................................... 9
II.2. ARCHITECTURE RESEAU DE TECH-PRO ....................................................... 9
II.3. ETUDE DE L’EXISTANT ..................................................................................... 9
II.4. CRITIQUE DE L’EXISTANT .............................................................................. 10
II.5. PROBLEMATIQUE ............................................................................................. 10
II.6. PROPOSITION D’APPROCHE DE SOLUTION ............................................... 10
II.7. INTERET DU SUJET ........................................................................................... 11
II.7.1. OBJECTIFS .................................................................................................... 11
II.7.2. RESULTATS ATTENDUS ............................................................................ 11
II.8. CONCLUSION ..................................................................................................... 11
CHAPITRE III : GENERALITES SUR LE SCRIPTING .................................................. 12
III.1. INTRODUCTION................................................................................................ 13
III.2. DEFINITION DU CONCEPT DE SCRIPTING ................................................. 13
III.3. AVANTAGES ET INCONVENIENTS DU SCRIPTING.................................. 13
III.3.1. AVANTAGES ............................................................................................... 13
III.3.2. INCONVENIENTS ....................................................................................... 14
III.4. PRESENTATION DE BASH SCRIPTING ........................................................ 15
III.4.1. NOTION SUR LE BASH .............................................................................. 15
III.4.2. PRINCIPE DE FONCTIONNEMENT ......................................................... 15
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON viii
TABLE DES MATIERES
III.4.3. ARCHITECTURE ET FONCTIONNEMENT DE BASH ........................... 16
III.4.4. PREREQUIS .................................................................................................. 17
III.4.5. AVANTAGES ET LIMITES DU SCRIPT BASH ....................................... 17
III.5. PRESENTATION DE L’OUTIL D’AUTOMATISATION ANSIBLE ............. 19
III.5.1. NOTION SUR ANSIBLE ............................................................................. 19
III.5.2. PRINCIPE DE FONCTIONNEMENT ......................................................... 20
III.5.3. ARCHITECTURE ......................................................................................... 20
III.5.4. PREREQUIS .................................................................................................. 22
III.5.5. AVANTAGES ET LIMITES D’ANSIBLE .................................................. 23
III.6. PRESENTATION DE KUBERNETES............................................................... 24
III.6.1. NOTION SUR KUBERNETES .................................................................... 24
III.6.2. PRINCIPE DE FONCTIONNEMENT ......................................................... 25
III.6.3. ARCHITECTURE ........................................................................................ 26
III.6.4. PREREQUIS ................................................................................................. 29
III.6.5. AVANTAGES ET LIMITES DE KUBERNETES ...................................... 29
III.6. CONCLUSION .................................................................................................... 30
CHAPITRE IV : MISE EN ŒUVRE ................................................................................. 32
IV.1. INTRODUCTION ............................................................................................... 33
IV.2. ARCHITECTURE D’IMPLEMENTATION ...................................................... 33
IV.3. MISE EN PLACE D’ANSIBLE .......................................................................... 34
IV.3.1. INSTALLATION D’ANSIBLE SUR LE NODE MANAGER .................... 34
IV.3.2. PREPARATION DE LA COMMUNICATION AVEC LES NODES ........ 35
IV.3.3. ARCHITECTURE DE NOTRE ENVIRONNEMENT DE DEPLOIEMENT ...... 36
IV.4. MISE EN PLACE DE POSTFIX ........................................................................ 38
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON ix
TABLE DES MATIERES
IV.5. INTEGRATION AVEC MYSQL ....................................................................... 47
IV.6. MISE EN PLACE D’APACHE ........................................................................... 49
IV.7. MISE EN PLACE DE DOVECOT ..................................................................... 51
IV.8. MISE EN PLACE DE POSTFIXADMIN ........................................................... 53
IV.9. DEPLOIEMENT DE ROUNDCUBE ................................................................. 57
IV.10. EVALUATION FINANCIERE ......................................................................... 61
IV.11. CONCLUSION .................................................................................................. 63
CONCLUSION GENERALE .......................................................................................... 64
BIBLIOGRAPHIE ........................................................................................................... 66
ANNEXES........................................................................................................................... I
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON x
PARTICIPANTS AU PROJET
PARTICIPANTS AU PROJET
Tableau 1 : Liste des participants au projet
Nom(s) et Prénom(s) Fonction(s) Rôle(s)
Etudiant en troisième année
M. Hans Eyram SODAHLON option Systèmes Réseaux à Réalisateur
DEFITECH
M. Nazif ADJARI Responsable Informatique Maître de stage
M. KPAKPOVI Enseignant à DEFITECH Directeur de Mémoire
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON xi
LISTE DES TABLEAUX
LISTE DES TABLEAUX
TABLEAU 1 : LISTE DES PARTICIPANTS AU PROJET........................................... XI
TABLEAU 2: DEFINITION DES SIGLES ................................................................. XIII
TABLEAU IV - 1 : TABLEAU DU COUT MATERIEL………………………………61
TABLEAU IV - 2 : TABLEAU DU COUT D'IMPLEMENTATION ............................ 62
TABLEAU IV - 3 : TABLEAU DU COUT DE LA FORMATION ............................... 62
TABLEAU IV - 4 : TABLEAU DU COUT DE LA MAINTENANCE ......................... 63
TABLEAU IV - 5 : TABLEAU RECAPITULATIF DES COUTS ................................ 63
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON xi
LISTE DES FIGURES
LISTE DES FIGURES
FIGURE I - 1 : ARCHITECTURE SIMPLIFIEE DU RESEAU DE TECH-PRO ........... 9
FIGURE III - 1 : ARCHITECTURE D'ANSIBLE……………………………………...21
FIGURE III - 2 : KUBERNETES_DIAGRAM ............................................................... 26
FIGURE IV - 1 : ARCHITECTURE DE PRODUCTION……………………………...34
FIGURE IV - 2 : ENVIRONNEMENT DE DEPLOIEMENT ........................................ 37
FIGURE IV - 3 : EXECUTION DU PLAYBOOK POSTFIX ........................................ 46
FIGURE IV - 4 : EXECUTION DU PLAYBOOK MYSQL .......................................... 49
FIGURE IV - 5 : EXECUTION DE PLAYBOOK APACHE ......................................... 50
FIGURE IV - 6 : EXECUTION DU PLAYBOOK DOVECOT ..................................... 53
FIGURE IV - 7 : EXECUTION DU PLAYBOOK POSTFIXADMIN ........................... 55
FIGURE IV - 8 : PAGE SETUP DE POSTFIXADMIN ................................................. 55
FIGURE IV - 9 : CREATION DU COMPTE SUPERADMINISTRATEUR ................. 56
FIGURE IV - 10 : PAGE DE CONNEXION POSTFIXADMIN ................................... 56
FIGURE IV - 11 : PAGE D'ACCUEIL POSTFIXADMIN ............................................. 57
FIGURE IV - 12 : EXECUTION DU PLAYBOOK ROUNDCUBE ............................. 60
FIGURE IV - 13 : PAGE DE CONNEXION ROUNDCUBE ........................................ 60
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON xii
LISTE DES SIGLES ET ABREVIATIONS
LISTE DES SIGLES ET ABREVIATIONS
Tableau 2: Définition des sigles
SIGLES DEFINITIONS
API Application Programming Interface
BASH Bourne Again SHell
CLI Command-Line Interface
CRI-O Container Runtime Interface
DNS Domain Name Server
GHZ Giga Hertz
Go Giga Octet
IMAP Internet Message Access Protocol
IP Internet Protocol
JAAS Java Authentication and Authorization Service
JSON JavaScript Object Notation
MAC Media Access Control
OCI Open Container Initiative
OS Operating System
PaaS Platform as a Service,
RAM Random Access Memory
RHEL Red Hat Enterprise Linux
SMTP Simple Mail Transfer Protocol
SMTPD Simple Mail Transfer Protocol Daemon
SSH Secure Socket Shell
TLS Transport Layer Security
WinRM Windows Remote Management
YAML Yet Another Markup Language
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON xiii
INTRODUCTION GENERALE
INTRODUCTION GENERALE
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 1
INTRODUCTION GENERALE
À l'ère numérique actuelle, l'automatisation est devenue un pilier essentiel de la gestion
des infrastructures informatiques. Elle offre des avantages considérables, notamment la
réduction des erreurs humaines, l'amélioration de l'efficacité opérationnelle et la rapidité
de déploiement des services. Dans ce contexte en constante évolution, l'automatisation
est devenue un élément incontournable pour maintenir une infrastructure informatique
robuste et efficace.
Notre mémoire se concentre spécifiquement sur l'automatisation du déploiement du
service de messagerie Postfix à l'aide d'Ansible. Le choix de ce sujet n'est pas anodin.
Les serveurs de messagerie occupent une place centrale dans la communication
numérique, que ce soit au niveau professionnel ou personnel. Garantir leur disponibilité,
leur sécurité et leur performance est crucial. Cependant, la configuration manuelle d'un
serveur de messagerie, comme Postfix, peut être complexe et sujette aux erreurs
humaines. L'automatisation avec Ansible offre une solution élégante pour surmonter ces
défis en garantissant une installation et une configuration cohérentes, sécurisées et
reproductibles.
A cet effet, nos travaux ont permis d’élaborer ce mémoire de fin d’études. Ce document est
subdivisé en quatre (4) chapitres :
- le premier présente les cadres de formation et de stage ;
- le deuxième l’étude du projet ;
- le troisième présente une généralité sur le scripting ;
- le dernier intitulé mise en œuvre présente un cas d’utilisation.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 2
CHAPITRE I : PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE STAGE
STAGE
CHAPITRE I :
PRESENTATION DU CADRE DE
FORMATION ET DU CADRE DE STAGE
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 3
CHAPITRE I : PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE STAGE
I.1. INTRODUCTION
Dans ce premier chapitre de notre document, nous allons passer à la présentation du
cadre de formation (DEFITECH) et notre organisme d’accueil (TECH-PRO).
I.2. CADRE DE FORMATION : INSTITUT POLYTECHNIQUE
DEFITECH
I.2.1. Présentation de l’institut polytechnique DEFITECH
L’institut polytechnique DEFITECH est un établissement d’enseignement supérieur dont
le siège se situe à Sito Aéroport Lomé-Togo. Il offre un cadre agréable pour la formation
des étudiants dans plusieurs domaines dont : les SCIENCES ÉCONOMIQUES & DE
GESTION, les SCIENCES DE L’HOMME & DE LA SOCIÉTÉ et les SCIENCES &
TECHNOLOGIES. L’offre de formation de l’institut polytechnique DEFITECH
comprend un parcours de Brevet de Technicien Supérieur, une Licence Professionnelle
en cours du soir (cours dispensés au siège à Sito) et une Licence Professionnelle système
LMD en cours du jour (cours dispensés sur son autre campus de Sito).
I.2.2. Historique
L’institut polytechnique DEFITECH a été fondé en Juillet 2002 à Lomé au Togo par
monsieur AMOUZOU Joachim Ali son actuel Directeur Général et PDG de DÉFI
INFORMATIQUE qui est une société de prestation de services informatiques et
bureautique créée depuis Janvier 1991.
Depuis 2015, grâce à des partenariats stratégiques noués avec l’Université de Lomé,
DEFITECH ouvre un nouveau campus spécialisé dans la formation en Licence
Professionnelle système LMD en cours du jour dans les mêmes domaines cités plus haut.
Cette nouvelle unité ouverte dans de nouveaux bâtiments situés dans le quartier de Sito
Aéroport.
I.2.3. Mission
L’Institut Polytechnique DEFITECH s’offre pour missions de :
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 4
CHAPITRE I : PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE STAGE
- contribuer à la formation de cadres compétents, intègres et dynamiques dont notre
pays a besoin pour son développement ;
- contribuer à la naissance d’une nouvelle race d'entrepreneurs aguerris prêts à
braver les réalités de la vie d’entreprenariat faite de risques et de sacrifices ;
- assurer une formation académique de haut niveau à ses étudiants.
I.2.4. Activités
Mis à part la formation académique, l’institut polytechnique DEFITECH offre d’autres
formations et prestations de services comme :
- l’académie CISCO pour la formation et la préparation au CCNA (Cisco Certified
Network Assistant) ;
- la prestation informatique et bureautique ;
- maintenance Hard et Soft et mise à jour des systèmes IDS et IPS avec les produits
CISCO.
I.2.5. Formations
L’institut polytechnique DEFITECH est spécialisé dans la formation académique des
étudiants en Génie Logiciel, Systèmes & Réseaux Informatiques, Gestion Commerciale,
Comptabilité & Finances, Communication des entreprises et Gestion des Ressources
Humaines. La formation en Licence est ouverte à des bacheliers nationaux de série
scientifique. Les conditions pour être admis à DEFITECH sont d’avoir le BAC (pour ce
qui est de la première année) ou après étude de dossier par une commission créée à ce
propos. Quatre parcours sont proposés par l’institut polytechnique DEFITECH :
- le BTS (Brevet de Technicien Supérieur) ;
- la Licence Professionnelle en cours du jour système LMD (Licence Master
Doctorat) ;
- la Licence Professionnelle en cours du soir ;
- la DEFITECH WEB@CADEMY.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 5
CHAPITRE I : PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE STAGE
Le parcours Licence Professionnelle en cours du jour système LMD est celui que nous
avons suivi. Il est composé de six semestres à la fin des quels, il est demandé aux
étudiants finissant d’effectuer un stage dans le milieu professionnel, où ils auront à
réaliser un projet qui sera validé par une soutenance face à un jury composé de
professionnels du métier et d’enseignants. Les différents parcours proposés sont :
- Génie Logiciel (En partenariat avec le CIC/ Université de Lomé) ;
- Systèmes & Réseaux Informatiques (En partenariat avec le CIC / Université de
Lomé).
I.2.6. Structure organisationnelle
L’Institut Polytechnique DEFITECH est subdivisé en divisions et services :
- la direction qui se compose du directeur général et de ses collaborateurs dont le
directeur adjoint et la direction des études ;
- le service Comptabilité, qui assure la gestion comptable de DEFITECH ;
- le secrétariat, qui s’occupe des tâches administratives pour le compte de la
direction ;
- la division Développement, qui assure le développement de solutions
informatique pour le compte de DEFITECH ;
- la division Maintenance qui fournit les services de maintenance sur les
équipements et médias des systèmes d’information et de réseau pour des
entreprises, des particuliers et leurs étudiants ;
- la division Système d’information, qui est chargé de la gestion du réseau de
DEFITECH.
Cette structure organisationnelle est représentée par l’organigramme présentée en
Annexe1.
I.2.7. Situation géographique et contacts
DEFITECH II se situe dans le quartier Sito aéroport non loin du siège. Le plan de
localisation est représenté par la figure en Annexe 2.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 6
CHAPITRE I : PRESENTATION DU CADRE DE FORMATION ET DU CADRE DE STAGE
Contact : (+228) 22 26 24 24 /22 26 25 25
E-mail : [email protected]
Site web : http://www.defitech.tg
I.3. PRESENTATION DU CADRE DU STAGE : TECH-PRO
I.3.1. Présentation et activités
Créé en 2016, le TECH-PRO est une structure de vente de matériels informatiques et de
prestation de services informatiques à Lomé. Elle est dirigée par Mme Akpé Ablavi ADJETE.
Les services offerts sont entre autres :
- l’installation et le câblage de réseaux informatiques ;
- le déploiement de la fibre optique et de son épissurage ;
- l’installation de caméra de surveillance ;
- la vente d’équipements informatiques ;
- conseils et formations ;
- l’infogérance.
I.3.2. Organigramme de TECH-PRO
L’organigramme de TECH-PRO est subdivisé en trois niveaux : la direction générale au
premier niveau, le secrétariat général et la comptabilité au deuxième niveau ; le
responsable des ventes, le responsable assurance et qualité, le responsable des formations
et le système d’informations au troisième niveau.
Cette structure est représentée pas l’organigramme en Annexe 3.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 7
CHAPITRE II : ETUDE DU PROJET
CHAPITRE II :
ETUDE DU PROJET
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 8
CHAPITRE II : ETUDE DU PROJET
II.1. INTRODUCTION
Dans ce deuxième chapitre, il sera question de faire un état des lieux puis une critique de
l’existant pour en dégager la problématique et de proposer des approches de solutions
pour éradiquer le problème.
II.2. ETUDE DE L’EXISTANT
Pour déterminer la portée du projet d'implémentation de la solution, il est essentiel de
disposer d'informations précises sur les procédures et les manières de faire des
techniciens lors des opérations de déploiement des systèmes d’application sur le terrain.
Ces informations affecteront une grande partie des décisions que nous allons prendre
dans le choix de la solution et de son déploiement.
Le réseau local de TECH-PRO est constitué d’un commutateur permettant la mise en
réseau des équipements de l’entreprise, d’un routeur qui relie le réseau local à Internet. Il
se présente comme indiqué sur la Figure I - 1 :
Figure I - 1 : Architecture simplifiée du réseau de TECH-PRO
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 9
CHAPITRE II : ETUDE DU PROJET
Le déploiement et la configuration initiale des systèmes de messagerie sont des étapes
essentielles pour les organisations. Cependant, ils peuvent également être source de défis
majeurs. Lorsqu'une entreprise décide de mettre en place un système de messagerie.
II.3. CRITIQUE DE L’EXISTANT
Après plus d’une étude de cette procédure, plusieurs défis ont été relevés :
- une mauvaise planification peut entraîner une surcharge du serveur ou une
mauvaise allocation des ressources ;
- la configuration incorrecte des paramètres de sécurité peut exposer l'organisation
à des risques de piratage ou de fuites d'informations sensibles ;
- enfin, plusieurs même tâches sont répétés lors de chaque déploiement ce qui
entraine une perte en temps.
II.4. PROBLEMATIQUE
L’analyse de la procédure lors plusieurs déploiements nous a fait constater qu’il peut être
optimisé pour limiter les erreurs lors des configurations, et aussi pour gagner en temps.
Cela nous amène à cette réflexion : comment assurer le déploiement rapide et fiable d’un
environnement de messagerie ?
II.5. PROPOSITION D’APPROCHE DE SOLUTION
Par rapport aux besoins énoncés plus haut, nous proposons d’utiliser un script pour
automatiser la mise en place :
- d’un serveur de messagerie ;
- d’un système de gestion de base de données ;
- d’un client webmail.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 10
CHAPITRE II : ETUDE DU PROJET
II.6. INTERET DU SUJET
II.6.1. Objectifs
Le principal objectif de ce projet est de fournir une solution pratique et éprouvée pour le
déploiement rapide et fiable d'un environnement de messagerie complet. Avec
l'évolution rapide des technologies, il est essentiel d'avoir un système de messagerie
efficace pour faciliter la communication au sein des organisations. Ce projet vise à
fournir une solution clé en main qui permettra aux entreprises d'implémenter rapidement
un environnement de messagerie complet, avec toutes les fonctionnalités nécessaires
pour assurer une communication fluide et sécurisée.
II.6.2. Résultats attendus
Les résultats attendus de cette étude sont :
- assurer le déploiement rapide et fiable d'un environnement de messagerie;
- assurer la gestion des données ;
- offrir une interface conviviale.
II.7. CONCLUSION
L'automatisation du déploiement d'un serveur de messagerie, en combinant une base de
données et un webmail grâce à Ansible, présente une solution novatrice et pragmatique
face aux défis croissants de la gestion des systèmes de communication. Elle ouvre la
voie à des solutions plus agiles et durables pour répondre aux besoins de communication
contemporains au sein des organisations. Le chapitre qui suit présente quelques concepts
sur le scripting.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 11
CHAPITRE III : GENERALITES SUR LE SCRIPTING
CHAPITRE III :
GENERALITES SUR LE SCRIPTING
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 12
CHAPITRE III : GENERALITES SUR LE SCRIPTING
III.1. INTRODUCTION
Ce chapitre est destiné à la présentation du concept de scripting et des outils
d’automatisation à savoir BASH, ANSIBLE et Kubernetes.
III.2. DEFINITION DU CONCEPT DE SCRIPTING
Le concept de "scripting" se réfère à l'utilisation de scripts, qui sont des séquences
d'instructions ou de commandes informatiques pré-écrites, pour automatiser des tâches
ou effectuer des actions spécifiques sur un système informatique. Les scripts sont
généralement écrits dans des langages de script, tels que Python, JavaScript, Ruby, Perl,
Bash, etc., qui sont conçus pour être faciles à lire, à écrire et à comprendre.
Le scripting est une approche de l'automatisation informatique qui repose sur l'écriture
de scripts dans des langages de script pour effectuer des tâches spécifiques de manière
efficace, automatisée et personnalisée. Il est largement utilisé dans le domaine de
l'informatique pour simplifier la gestion des systèmes et des données, ainsi que pour
accroître la productivité et la fiabilité des processus informatiques.
III.3. AVANTAGES ET INCONVENIENTS DU SCRIPTING
III.3.1. Avantages
Les avantages du scripting sont les suivants :
- automatisation : l'automatisation des tâches répétitives est l'un des principaux
avantages du scripting. Il permet d'économiser du temps et de réduire les erreurs
humaines ;
- flexibilité : les langages de script sont souvent flexibles et adaptés à des tâches
spécifiques. Cela permet aux utilisateurs de personnaliser les scripts en fonction
de leurs besoins ;
- portabilité : les scripts sont souvent portables, ce qui signifie qu'ils peuvent être
exécutés sur différentes plates-formes sans nécessiter de modifications majeures ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 13
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- rapidité de développement : les langages de script sont généralement plus faciles
et rapides à apprendre et à utiliser que les langages de programmation plus
complexes, ce qui accélère le processus de développement ;
- maintenance facilitée : en général, les scripts sont plus faciles à entretenir et à
déboguer que des programmes plus complexes ;
- large communauté : les langages de script populaires, tels que Python et
JavaScript, ont de vastes communautés de développeurs, ce qui facilite l'accès à
des ressources et des solutions ;
- intégration facile : les scripts peuvent souvent être intégrés à d'autres technologies
et outils, ce qui les rend compatibles avec un large éventail d'environnements.
III.3.2. Inconvénients
Les inconvénients du scripting sont entre autres :
- performance : les langages de script sont généralement interprétés, ce qui peut
entraîner une performance moindre par rapport aux langages compilés pour
certaines tâches intensives en ressources ;
- sécurité : certains scripts peuvent présenter des risques de sécurité s'ils ne sont pas
correctement conçus et gérés. Des erreurs dans le code peuvent entraîner des
vulnérabilités ;
- limitations fonctionnelles : pour des tâches complexes et intensives, un langage de
script peut ne pas être aussi puissant qu'un langage de programmation plus
robuste ;
- difficulté à déboguer : les erreurs dans les scripts peuvent parfois être difficiles à
repérer et à déboguer, en particulier pour les personnes moins expérimentées ;
- complexité croissante : certains scripts peuvent devenir complexes au fil du
temps, surtout s'ils sont étendus pour répondre à des exigences croissantes, ce qui
peut rendre leur maintenance plus difficile ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 14
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- dépendance aux interpréteurs : les scripts dépendent souvent d'interpréteurs
spécifiques, ce qui peut rendre leur exécution dépendante de l'environnement dans
lequel ils sont exécutés.
III.4. PRESENTATION DE BASH SCRIPTING
III.4.1. Description de BASH
Le BASH est un interpréteur de commandes qui est largement utilisé dans les systèmes
d'exploitation basés sur UNIX, y compris Linux. C'est un langage de script puissant et
polyvalent qui permet aux utilisateurs d'interagir avec leur système d'exploitation en
exécutant des commandes, en automatisant des tâches et en écrivant des scripts pour
accomplir des actions complexes.
Le BASH est considéré comme l'un des interpréteurs de commandes les plus populaires
en raison de sa compatibilité avec les commandes Shell d'origine et de sa grande
flexibilité. Il offre un ensemble étendu de fonctionnalités, y compris des boucles, des
conditions, des variables, des redirections, des substitutions de commandes et bien plus
encore. Les scripts BASH peuvent être utilisés pour automatiser des tâches courantes,
effectuer des opérations de manipulation de fichiers, lancer des programmes, gérer des
processus, et bien d'autres choses encore.
III.4.2. Principe de fonctionnement [1]
Le shell Bash est un langage qui sert uniquement à recevoir des commandes et à les
transmettre à l’OS. Nous allons pouvoir utiliser Bash pour envoyer toutes sortes
d’instructions à l’OS.
Les commandes sont au cœur du langage shell Bash. Les commandes indiquent à Bash
ce qu’on souhaite faire, étape par étape, commande par commande. Bash prend
généralement une commande à la fois, exécute la commande et, une fois terminé, nous
renvoie à la commande suivante. Nous appelons cette exécution de commande
synchrone.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 15
CHAPITRE III : GENERALITES SUR LE SCRIPTING
Le Bash est principalement un langage basé sur les lignes. Lorsque Bash lit nos
commandes, il le fait ligne par ligne. La plupart des commandes ne constituent qu’une
ligne. Il faudra préciser explicitement qu’une commande n’est pas terminée à la fin
d’une ligne pour que Bash le comprenne. Dans le cas contraire, Bash considèrera que la
fin de la ligne correspond à la fin de la commande.
III.4.3. Architecture et fonctionnement de BASH
Le BASH est construit sur une architecture en couches qui lui permet d'exécuter les
commandes et les scripts de manière efficace dont un aperçu de son architecture se
présente comme suit :
- CLI : l'interface en ligne de commande est l'interface principale de BASH. C'est
là que les commandes sont directement entrées pour être exécuter ou pour écrire
des scripts pour automatiser des tâches ;
- analyseur lexical (Lexer) : lorsqu’une commande ou un script est lancé, le lexer
analyse le texte et le divise en éléments lexicaux tels que les mots, les opérateurs
et les symboles. Cela permet à BASH de comprendre la structure de la
commande ;
- analyseur syntaxique (Parser) : une fois que le texte a été analysé en éléments
lexicaux, le parser examine ces éléments et construit une structure de données
appelée arbre syntaxique. Cet arbre représente la structure de la commande ou du
script et permet à BASH de comprendre la signification des différentes parties ;
- évaluation des commandes : une fois que l'arbre syntaxique est construit, BASH
évalue chaque commande en la traitant selon sa signification. Cela implique
l'exécution des commandes internes de BASH ou le lancement de programmes
externes ;
- gestion des variables et des fonctions : BASH prend également en charge la
définition et la gestion des variables et des fonctions. Il es possible de définir ses
propres variables et fonctions dans un script BASH pour stocker des valeurs et
effectuer des opérations personnalisées ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 16
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- redirections et pipelines : BASH offre des fonctionnalités avancées telles que les
redirections de flux et les pipelines. Les redirections permettent de rediriger
l'entrée ou la sortie des commandes vers des fichiers ou d'autres commandes. Les
pipelines permettent de chaîner plusieurs commandes ensemble, où la sortie d'une
commande devient l'entrée de la suivante ;
- contrôle de flux : BASH propose des structures de contrôle de flux telles que les
boucles (par exemple, les boucles "for" et "while") et les instructions
conditionnelles (par exemple, "if-else") pour permettre des prises de décision et
des itérations dans les scripts.
En utilisant cette architecture en couches, BASH est capable d'analyser, d'évaluer et
d'exécuter les commandes et les scripts de manière efficace, offrant ainsi une grande
flexibilité aux utilisateurs pour interagir avec leur système d'exploitation.
III.4.4. Prérequis
Pour utiliser BASH, il n'y a pas de prérequis spécifiques. Il faut juste avoir une
compréhension de base des concepts liés aux systèmes d'exploitation et des commandes
disponibles dans l'environnement UNIX/Linux.
III.4.5. Avantages et limites du script BASH [2]
III.4.5.1. Avantages
BASH présente plusieurs avantages dont :
- une facilité d’apprentissage et d’écrire : les scripts Bash sont reconnus pour leur
simplicité et leur facilité d’utilisation. La syntaxe est simple et ressemble aux
commandes de base du shell, ce qui la rend accessible aux débutants. Grâce à sa
syntaxe concise et à ses exigences minimales en matière d’installation, même les
utilisateurs ayant une expérience limitée de la programmation peuvent
rapidement commencer à écrire des scripts utiles ;
- une large compatibilité : divers systèmes Unix, dont Linux, macOS et BSD,
peuvent exécuter des scripts Bash. La disponibilité de Bash sur différentes plates-
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 17
CHAPITRE III : GENERALITES SUR LE SCRIPTING
formes en fait un choix polyvalent pour les besoins de scripts multiplateformes.
Les scripts Bash sont facilement portés et exécutés sur d’autres machines sans
modification, ce qui garantit la compatibilité entre les environnements ;
- des outils de ligne de commande puissants : l’un des principaux atouts des scripts
Bash est leur capacité à exploiter la puissance des outils de ligne de commande.
Bash fournit une interface transparente pour exécuter les commandes et les
utilitaires du système, ce qui permet aux utilisateurs de tirer parti du vaste
écosystème d’outils existants. Cette caractéristique permet des scénarios
d’automatisation complexes et fait de Bash un excellent choix pour les tâches
d’administration du système ;
- une capacité d’automatisation : les scripts Bash excellent dans l’automatisation
des tâches répétitives et des flux de travail de l’administration du système. Il
permet aux utilisateurs de combiner plusieurs commandes, conditions, boucles et
variables pour créer des scripts efficaces qui permettent d’économiser du temps
et des efforts. En automatisant les tâches de routine, les scripts Bash permettent
de rationaliser les processus et d’améliorer la productivité.
III.4.5 2. Limites des scripts Bash
BASH présente aussi des limites à savoir :
- des fonctionnalités linguistiques limitées : en tant que langage shell, le script
Bash dispose de fonctionnalités limitées par rapport à des langages de
programmation plus robustes tels que Python. Il manque de structures de données
avancées, de capacités de programmation orientée objet et d’une organisation
modulaire du code. Cette limitation peut compliquer le développement de scripts
complexes et conduire à un code moins facile à maintenir ;
- une difficulté à gérer des structures de données complexes : les scripts Bash sont
principalement conçus pour exécuter des commandes système et traiter des flux
de texte simples. Dans Bash, la manipulation de structures de données
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 18
CHAPITRE III : GENERALITES SUR LE SCRIPTING
complexes, telles que JSON ou XML, peut s’avérer fastidieuse. Bien qu’il soit
possible de manipuler de telles données, cela demande plus d’efforts et peut
aboutir à des solutions moins élégantes qu’avec des langages comme Python ;
- des problèmes de performance : bien que les scripts Bash soient efficaces pour
les tâches de petite et moyenne envergure, ils peuvent souffrir de problèmes de
performance lorsqu’il s’agit d’opérations de calcul intensif ou à grande échelle.
Bash est un langage interprété, ce qui signifie que les scripts sont exécutés ligne
par ligne. Cette surcharge d’interprétation peut avoir un impact sur la vitesse
d’exécution, en particulier par rapport à des langages compilés comme C ou
Python.
III.5. PRESENTATION DE L’OUTIL D’AUTOMATISATION
ANSIBLE
III.5.1. Description de Ansible
Ansible est un outil d'automatisation open source largement utilisé dans le domaine de
l'infrastructure et de la gestion de configuration. Il offre une approche simple et
déclarative pour automatiser le déploiement, la configuration et la gestion des
infrastructures, des applications et des services. Ansible se distingue par sa facilité
d'utilisation, sa flexibilité et sa capacité à s'intégrer à des environnements hétérogènes.
L'un des principaux avantages d'Ansible réside dans son langage déclaratif. Plutôt que
d'écrire des scripts complexes, il faut décrire simplement l'état souhaité du système ou de
des services dans des fichiers appelés "playbooks". Ansible se charge ensuite d'appliquer
ces états de manière cohérente sur l'ensemble de l’infrastructure, en utilisant des modules
spécifiques à chaque plateforme. Cette approche simplifie considérablement le processus
d'automatisation et le rend accessible même aux utilisateurs moins expérimentés.
Ansible permet d'automatiser trois types de tâches [3] :
- provisioning : configurer les différents serveurs dont l’ infrastructure a besoin ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 19
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- configuration : modifier la configuration d'une application, d'un système
d'exploitation ou d'un périphérique, démarrer et arrêter les services, installer ou
mettre à jour des applications, mettre en œuvre une politique de sécurité, ou
effectuer une grande variété d'autres tâches de configuration ;
- déploiement d'applications : adopter une démarche DevOps en automatisant le
déploiement d'applications développées en interne sur les environnements de
production.
III.5.2. Principe de fonctionnement [4]
Lorsqu’il y a plusieurs machines à gérer, Ansible exécute les opérations en parallèle.
Cela permet de gagner un temps considérable. Cependant, les tâches sont effectuées dans
un ordre définit par l’utilisateur lors du choix de la stratégie : Par défaut Ansible attendra
d’avoir fini une tâche (sur tous les hôtes) pour passer à la suivante. Ansible et plus
particulièrement ses modules sont idempotents. Cela signifie qu’une opération donnera
le même résultat qu’on l’exécute une ou plusieurs fois.
III.5.3. Architecture [5]
Dans Ansible, il existe deux catégories d'ordinateurs : le nœud maître (master) et les
nœuds esclaves (slaves). Le nœud maître est une machine sur laquelle est installé l'outil
Ansible. Ansible fonctionne en se connectant aux nœuds en SSH et en y poussant de
petits programmes, appelés modules. Ces modules sont définis dans un fichier nommé le
Playbook. Le nœud maître, se base sur un fichier d'inventaire qui fournit la liste des
hôtes sur lesquels les modules Ansible doivent être exécutés.
Cette architecture est représentée par la figure qui suit :
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 20
CHAPITRE III : GENERALITES SUR LE SCRIPTING
Figure III - 1 : Architecture d'Ansible
Cette figure présente différents modules :
- le node Manager (Gestionnaire de nœuds) : le Node Manager est un composant
d'Oracle WebLogic Server qui permet de gérer et de surveiller les instances de
serveur WebLogic à distance. Il fournit une interface pour démarrer, arrêter,
redémarrer et surveiller les serveurs, ainsi que pour gérer les applications
déployées ;
- l’inventaire : dans le contexte des outils de gestion de configuration et
d'automatisation comme Ansible, l'inventaire est un fichier ou une source de
données qui répertorie les hôtes ou les nœuds sur lesquels les tâches et les
opérations doivent être exécutées. L'inventaire peut contenir des informations
telles que les adresses IP, les noms d'hôte, les groupes d'hôtes et les variables
spécifiques à chaque hôte ;
- les playbooks : ce sont des fichiers YAML qui contiennent des ensembles
d'instructions et de tâches décrivant les étapes à suivre pour configurer et gérer les
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 21
CHAPITRE III : GENERALITES SUR LE SCRIPTING
systèmes à l'aide d'Ansible. Les playbooks permettent de définir les étapes à
suivre pour atteindre un état désiré sur les hôtes ciblés, en spécifiant les rôles, les
tâches, les modules et les variables à utiliser ;
- les modules : ce sont les éléments de base utilisés par Ansible pour effectuer des
actions spécifiques sur les nœuds ciblés. Ils peuvent être utilisés pour gérer des
ressources système, exécuter des commandes, gérer des fichiers, manipuler des
services, etc. Les modules sont écrits en langage Python et sont exécutés sur les
nœuds distants via SSH ;
- les rôles : ce sont des unités de réutilisation dans Ansible qui regroupent des
tâches, des fichiers de configuration, des templates, des handlers, etc., pour
réaliser une fonctionnalité ou une configuration spécifique. Les rôles permettent
d'organiser et de structurer le code Ansible de manière modulaire, ce qui facilite
la réutilisation et la maintenance.
- les templates : ce sont des fichiers de modèle utilisés par Ansible pour générer des
fichiers de configuration ou des scripts dynamiquement, en remplaçant les
variables par leurs valeurs spécifiques à chaque nœud. Les templates permettent
de créer des fichiers de configuration personnalisés pour chaque nœud ciblé.
III.5.4. Prérequis
Pour utiliser Ansible efficacement, il est nécessaire de satisfaire à certains prérequis.
Voici les principaux prérequis pour travailler avec Ansible :
- système d'exploitation : Ansible est compatible avec une large gamme de
systèmes d'exploitation, notamment Linux, macOS et Windows. Cependant, la
plupart des fonctionnalités avancées d'Ansible sont optimisées pour les
environnements Linux ;
- connexion réseau : Ansible se base sur des connexions réseau pour interagir avec
les hôtes cibles. Il est donc important de s'assurer que les hôtes cibles sont
accessibles via le réseau et que les ports nécessaires, comme le port SSH (pour les
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 22
CHAPITRE III : GENERALITES SUR LE SCRIPTING
connexions SSH) ou le port WinRM (pour les connexions Windows Remote
Management), sont ouverts ;
- clés SSH : pour se connecter aux hôtes cibles, il faut disposer des clés SSH
appropriées pour établir une connexion sécurisée. Il faut également s’assurer que
les clés publiques sont correctement configurées sur les hôtes cibles pour
permettre une authentification sans mot de passe ;
- python : Ansible nécessite l'installation de Python sur le système d'exécution
local, ainsi que sur les hôtes cibles. Python est utilisé par Ansible pour exécuter
les modules et les scripts sur les hôtes cibles. La version minimale recommandée
de Python pour Ansible est Python 2.7 ou Python 3.5+ ;
- accès administratif : pour exécuter des tâches d'automatisation à grande échelle, il
faut disposer d'un accès administratif ou de privilèges suffisants sur les hôtes
cibles. Cela peut inclure l'accès en tant que superutilisateur (root) ou l'utilisation
de comptes d'administration spécifiques avec des droits suffisants pour effectuer
les actions requises ;
- installer Ansible : il faut installer Ansible sur la machine de contrôle, qui est le
système à partir duquel sera exécuté les tâches d'automatisation. Ansible est
généralement installé via des gestionnaires de paquets, tels que pip (pour Python)
ou les gestionnaires de paquets de distribution (par exemple, apt pour Ubuntu,
yum pour CentOS).
En satisfaisant ces prérequis, Ansible est prêt à être utiliser pour automatiser les tâches
de gestion et de configuration. Il faut s’assurer de prendre en compte les spécificités de
l’environnement et de consulter la documentation officielle d'Ansible pour obtenir des
informations détaillées sur les prérequis et les meilleures pratiques.
III.5.5. Avantages et limites d’Ansible [6]
III.5.5.1. Avantages d'Ansible
Les avantages d’Ansible sont essentiellement les suivants :
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 23
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- simple et facile à apprendre ;
- sans agent ;
- rendre l'ensemble du processus de déploiement automatisé et convivial pour les
développeurs ;
- scripts simples et lisibles basés sur YAML (Ansible Playbooks) ;
- prise en charge énorme des modules ;
- disponibilité d'un référentiel central appelé Ansible galaxy pour rechercher et
réutiliser le contenu Ansible.
III.5.5.2. Limites d'Ansible
Ansible a aussi ses limites qui sont entre autres :
- manque d’offre d’interface utilisateur ;
- pas de maintien de l'état. Ansible ne garde pas la trace des dépendances. Il
exécute simplement une série séquentielle de tâches, s'arrête lorsqu'il se termine,
échoue ou rencontre une erreur ;
- pas de prise en charge du système d’exploitation Windows ;
- ce n’est pas si simple d’écrire des scripts complexes avec une logique étendue
dans des playbooks ;
- manque de messages d’erreur descriptifs lorsqu’il s’agit de déboguer des
playbooks complexes.
III.6. PRESENTATION DE KUBERNETES
III.6.1. Description de Kubernetes [7]
Kubernetes est une plate-forme open-source, extensible et portable qui facilite la gestion
des charges de travail et des services conteneurisés. Son approche met l'accent sur la
configuration déclarative et l'automatisation, rendant ainsi son utilisation plus fluide et
efficace. C'est un large écosystème en rapide expansion. Les services, le support et les
outils Kubernetes sont largement disponibles.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 24
CHAPITRE III : GENERALITES SUR LE SCRIPTING
Le principal avantage de la technologie Kubernetes, est qu'elle offre une plateforme
réservée à la planification et à l'exécution de conteneurs sur des clusters de machines
physiques ou virtuelles [8].
Kubernetes a un certain nombre de fonctionnalités. Il peut être considéré comme :
- une plate-forme de conteneurs ;
- une plate-forme de microservices ;
- une plate-forme cloud portable et beaucoup plus.
Kubernetes fournit un environnement de gestion focalisé sur le conteneur (container-
centric). Il orchestre les ressources machines (computing), la mise en réseau et
l’infrastructure de stockage sur les workloads des utilisateurs. Cela permet de se
rapprocher de la simplicité des PaaS avec la flexibilité des solutions d’IaaS, tout en
gardant de la portabilité entre les différents fournisseurs d'infrastructures (providers).
III.6.2. Principe de fonctionnement [9]
Kubernetes fonctionne sur la base d'un état défini et d'un état réel. Les objets Kubernetes
représentent l'état d'un cluster. Ils lui indiquent à quoi la charge de travail ressemble. Une
fois qu'un objet a été créé et défini, Kubernetes veille à ce qu'il soit toujours présent. Les
contrôleurs gèrent l'état des objets Kubernetes de façon active et apportent des
modifications de sorte que l'état actuel du cluster corresponde à l'état souhaité.
Les développeurs ou administrateurs système spécifient l'état défini à l'aide des fichiers
YAML ou JSON qu'ils soumettent à l'API Kubernetes qui utilise un contrôleur pour
comparer le nouvel état défini et l'état réel du cluster. Kubernetes gère ensuite
automatiquement le cluster pour qu'il corresponde à l'état souhaité. Pour cela, les
contrôleurs envoient en général des messages au serveur d'API, qui entraînent les
modifications nécessaires. Certaines ressources de Kubernetes ont des contrôleurs
intégrés. La fonctionnalité de mise à l'échelle automatique de Kubernetes permet de
mettre à l'échelle les services en fonction de la demande des utilisateurs.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 25
CHAPITRE III : GENERALITES SUR LE SCRIPTING
III.6.3. Architecture [10]
Le terme « cluster » désigne un déploiement fonctionnel de Kubernetes. Un cluster
Kubernetes comprend deux principaux composants : le plan de contrôle et les machines
de calcul ou nœuds. Chaque nœud est son propre environnement Linux. Il peut s'agir
d'une machine physique ou virtuelle. Chaque nœud exécute des pods, constitués de
conteneurs.
Le schéma suivant représente les liens entre les différents composants d'un cluster
Kubernetes :
Figure III - 2 : Kubernetes_diagram
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 26
CHAPITRE III : GENERALITES SUR LE SCRIPTING
III.6.3.1. Plan de contrôle Kubernetes
Il contient les composants Kubernetes qui contrôlent le cluster, ainsi que des données sur
l'état et la configuration du cluster. Ces principaux composants de Kubernetes s'assurent
que suffisamment de conteneurs peuvent fonctionner avec les ressources nécessaires.
Ces composants sont les suivants :
- kube-apiserver : permet d'interagir avec un cluster Kubernetes. L'API de
Kubernetes est la partie frontale du plan de contrôle. Elle prend en charge les
demandes internes et externes. Le serveur d'API détermine si une demande est
valide ou non et la traite ;
- kube-scheduler : c’est le planificateur Kubernetes. En plus de l'intégrité du cluster,
le planificateur doit prendre en compte les besoins en ressources d'un pod. Il
planifie ensuite l'attribution du pod au nœud de calcul adéquat ;
- kube-controller-manager : le gestionnaire de contrôleur Kubernetes regroupe
plusieurs fonctions de contrôleur. Un contrôleur se réfère au planificateur pour
s'assurer qu'un nombre suffisant de pods est exécuté. Si un pod est défaillant, un
autre contrôleur le remarque et réagit. Un contrôleur connecte les services aux
pods afin que les demandes soient acheminées jusqu'aux points de terminaison
appropriés. D'autres contrôleurs permettent de créer des comptes et des jetons
d'accès aux API ;
- etcd : c’est une base de données clé-valeur qui comprend les données de
configuration et les informations sur l'état du cluster. Distribuée et résistante aux
pannes, la base de données etcd constitue la référence unique concernant le cluster.
III.6.3.2. Nœud Kubernetes
Un cluster Kubernetes requiert au moins un nœud de calcul, mais en général il en
contient un grand nombre.
Les composants d’un nœud sont les suivants :
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 27
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- pods : c’est l'unité la plus petite et la plus simple dans le modèle d'objets de
Kubernetes. Il représente une instance unique d'une application. Chaque pod est
constitué d'un conteneur ou d'une série de conteneurs étroitement couplés, ainsi
que des options permettant de contrôler l'exécution de ces conteneurs. Il est
possible de connecter les pods à un système de stockage persistant afin d'exécuter
des applications avec état ;
- moteur d'exécution de conteneurs : chaque nœud de calcul dispose d'un moteur qui
permet d'exécuter les conteneurs. Docker en est un exemple, mais Kubernetes
prend en charge d'autres environnements conformes aux normes OCI, tels que rkt
et CRI-O ;
- kubelet : c’est une petite application qui communique avec le plan de contrôle. Le
kubelet s'assure que les conteneurs sont exécutés dans un pod. Lorsque le plan de
contrôle envoie une requête vers un nœud, le kubelet exécute l'action ;
- kube-proxy : il facilite la mise en œuvre des services de mise en réseau de
Kubernetes. Le composant kube-proxy gère les communications réseau dans et en
dehors du cluster. Il utilise la couche de filtrage de paquets du système
d'exploitation si elle est disponible, sinon il transmet le trafic lui-même.
III.6.3.3. Les autres composants essentiels d'un cluster Kubernetes
Kubernetes fonctionne également sur la base d’autres composants à ne pas négliger :
- stockage persistant : en plus des conteneurs qui exécutent une application,
Kubernetes peut gérer les données d'application liées à un cluster. Un utilisateur
peut demander des ressources de stockage, sans nécessairement connaître les
détails de l'infrastructure de stockage sous-jacente. Les volumes persistants sont
spécifiques à un cluster et non à un pod. Ils peuvent donc avoir une durée de vie
supérieure à celle d'un pod ;
- registre de conteneurs : le registre de conteneurs stocke les images de conteneurs
sur lesquelles repose Kubernetes. Il peut s'agir d'un registre tiers ou d'un registre ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 28
CHAPITRE III : GENERALITES SUR LE SCRIPTING
- infrastructure sous-jacente : il est possible de choisir l'environnement d'exécution
de Kubernetes : serveurs nus, machines virtuelles ou clouds publics, privés et
hybrides. Kubernetes peut fonctionner sur de nombreux types d'infrastructures.
C'est un avantage non négligeable.
III.6.4. Prérequis [11]
Pour fonctionner, Kubernetes a besoin des prérequis suivants :
- une ou plusieurs machines exécutant les systèmes d’exploitations suivants :
▪ Ubuntu 16.04+
▪ Debian 9+
▪ CentOS 7
▪ Red Hat Enterprise Linux (RHEL) 7
▪ Fedora 25+
▪ HypriotOS v1.0.1+
▪ Flatcar Container Linux (testé avec 2512.3.0)
- 2 Go ou plus de RAM par machine (toute quantité inférieure laissera peu de place
aux applications) ;
- 2 processeurs ou plus ;
- connectivité réseau complète entre toutes les machines du cluster (réseau public
ou privé) ;
- nom d'hôte, adresse MAC et product_uuid uniques pour chaque nœud ;
- certains ports doivent être ouverts sur les machines ;
- swap désactivé. Le swap doit être impérativement désactivé pour que la kubelet
fonctionne correctement.
III.6.5. Avantages et limites de Kubernetes [12]
Tout comme Ansible, Kubernetes présente également des avantages et limites.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 29
CHAPITRE III : GENERALITES SUR LE SCRIPTING
III.6.5.1. Avantages
Les points forts de Kubernetes sont les suivants :
- l’adaptation : kube s’adapte à la charge et la répartit, mais il adapte également
l’infrastructure lorsque le développeur code sa fonctionnalité, pour que tout soit
harmonisé et marche ensemble ;
- la productivité : il permet aux développeurs d’être très productif lors de la mise en
production par l’automatisation des tâches qui sont sinon seraient manuelles,
chronophage et s’ouvrant à des possibilités d’erreurs ;
- la communauté : kube connaît une très grande communauté d’utilisateurs (+2500
contributeurs) fournissant une grande documentation sur le sujet, diffusant les best
practices avec des mise à jour très régulières ;
- la liberté : il est gratuit et libre d’accès puisqu’il est Open Source, permettant un
accès illimité ;
- la centralisation : kube centralise et orchestre tous les éléments.
III.6.5.2. Limites de Kubernetes
Les limites sont les suivantes :
- la complexité : kube est difficile à maintenir pour un novice et nécessite
l’intervention d’experts. La migration Kubernetes doit être minutieusement
préparée ;
- la formation : kube par sa complexité, nécessite une formation par un expert ;
- les conteneurs : kube ne sait gérer que des applications conteneurisées. En effet,
qui dit Kubernetes, dit souvent Docker.
III.6. CONCLUSION
Dans ce chapitre, nous avons exploré les outils et les concepts fondamentaux qui sous-
tendent la capacité à automatiser des processus informatiques, en mettant en lumière leur
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 30
CHAPITRE III : GENERALITES SUR LE SCRIPTING
importance dans le domaine de la gestion des infrastructures et de la simplification des
opérations. Le chapitre qui suit concerne la mise en œuvre du projet ; elle permettra de
présenter l’outil Ansible en pratique.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 31
CHAPITRE IV : MISE EN ŒUVRE
CHAPITRE IV :
MISE EN ŒUVRE
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 32
CHAPITRE IV : MISE EN ŒUVRE
IV.1. INTRODUCTION
Ce chapitre présente la mise en place de l’outil d’automatisation Ansible, les différentes
étapes du déploiement de Postfix comme serveur mail avec Dovecot comme serveur
IMAP, PostfixAdmin comme interface d’administration et Roundcube comme client
webmail. Cette réalisation n’étant pas sans frais, nous terminerons ce chapitre par une
évaluation des coûts liés à celle-ci.
IV.2. ARCHITECTURE D’IMPLEMENTATION
Pour la réalisation de ce projet, une plateforme de machines virtuelles a été mise en place
pour faciliter les tests.
IV.2.1. Configuration matérielle
L’outil d’automatisation des tâches du déploiement Ansible est configuré sous macOS
13.2 caractérisé par :
- un processeur de 1,8 GHz Intel Core i5 quatre cœurs
- une mémoire RAM de 16 Go
- un disque dur de 500 Go
Cette machine est l’hôte de l’émulateur.
Pour les besoins de ce mémoire, nous avons eu recours à l’émulateur VMware Fusion
13.0.2 pour l’installation de deux machines virtuelles.
Il s’agit de :
- un serveur MAIL configuré sous la distribution Ubuntu server 22.04;
- un serveur de base de données configuré sous Ubuntu server 22.04.
Ces machines virtuelles sont caractérisées par une mémoire RAM de 2 Go et 60 Go
d’espace de stockage. La distribution Ubuntu server 22.04 est utilisée comme système
d’exploitation car elle est libre et stable.
Le schéma suivant représente l’architecture de notre configuration :
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 33
CHAPITRE IV : MISE EN ŒUVRE
Figure IV - 1 : Architecture de production
Cette figure est une représentation du mode de connexion entre le Node Manager qui est
l’hôte d’Ansible et les serveurs qui sont gérés. Ansible utilise la connexion SSH pour se
connecter aux machines cible pour y exécuter le script.
IV.2.2. Configuration logicielle
Les logiciels utilisés pour la mise en place de notre déploiement sont les suivants :
- Postfix : serveur mail ;
- Dovecot : serveur IMAP ;
- Apahe2 : serveur web ;
- MySQL : base de données ;
- PostfixAdmin : interface administrateur web pour postfix ;
- Roundcube : interface webmail.
IV.3. MISE EN PLACE D’ANSIBLE
IV.3.1. Installation d’Ansible sur le node manager
Il y a plusieurs façons d’installer Ansible :
- via les packages logiciels sur un système Linux ;
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 34
CHAPITRE IV : MISE EN ŒUVRE
- via pip de Python dans un virtualenv ou pas ;
- via les sources officielles (Archives ou Git) maintenues par Red Hat.
Ansible peut être installé avec ces trois méthodes nativement sur des systèmes de type
UNIX (Linux ou macOS).
- Nous avons décidé d’installer Ansible avec la méthode pip de Python dans un
virtualenv. Cela se fera avec les commandes suivantes :
python3 -m venv ansible
source ansible/bin/activate
pip3 install ansible
IV.3.2. Préparation de la communication avec les nodes
IV.3.2.1. Définition de l’inventaire des nodes
Sur le serveur 1 sera installé MySQL, nous l’appellerons bdd1. Sur le serveur 2 seront
installés Postfix, Dovecot, Apache, PHP, PostfixAdmin et Roundcube, nous
l’appellerons mail1.
Comme nous n’avons pas accès au DNS, nous avons décidé de configurer la résolution
de nom via le fichier /etc/hosts sur le node manager.
127.0.0.1 localhost
127.0.1.1 node-manager
# le node mail1
192.168.122.11 mail1
# le node bdd1
192.168.122.12 bdd1
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 35
CHAPITRE IV : MISE EN ŒUVRE
IV.3.2.2. Création du fichier inventaire Ansible
Pour fonctionner, Ansible a besoin d’un fichier inventaire. Ce fichier contient la liste des
nodes. Nous allons donc créer un fichier inventaire.ini et y enregistrer le nom des nodes
et le nom de l’utilisateur de connexion à ces nodes.
bdd1 ansible_user=user
mail1 ansible_user=user
IV.3.2.3. Création des clés SSH
Pour se connecter en SSH, il est recommandé d’utiliser une paire de clés plutôt que
d’utiliser un mot de passe.
La communication SSH est établie sur la base de clés SSH ; cette pratique est conseillée,
car elle permet un niveau d’authentification beaucoup plus sûr que l’authentification par
mot de passe.
Nous allons maintenant créer une paire de clés SSH et les copié sur les deux serveurs :
ssh-keygen
ssh-copy-id user@bdd1
ssh-copy-id user@mail1
IV.3.3. Architecture de notre environnement de déploiement
Notre environnement se présente comme suit :
- un fichier inventaire.ini qui contient la liste des nodes et leur utilisateur de
connexion ;
- un rôle contenant les tâches à exécuter pour chaque logiciel à déployer ;
- un playbook pour chaque déploiement.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 36
CHAPITRE IV : MISE EN ŒUVRE
Cela est illustré par la figure qui suit :
Figure IV - 2 : Environnement de déploiement
Le playbook mail-env.yml sur la Figure IV-2 permet d’exécuter tous les rôles en une
seule instruction alors que les autres sont chacun lié à un seul rôle. Cela a été fait ainsi
pour présenter les résultats selon chaque déploiement.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 37
CHAPITRE IV : MISE EN ŒUVRE
IV.4. MISE EN PLACE DE POSTFIX
Dans cette rubrique, nous allons présenter les tâches d’installation et de configuration de
Postfix.
IV.4.1. Installation de postfix
Le module apt est utilisé pour installer postfix et postfix-mysql.
- name: Installation de postfix
apt:
name: postfix,postfix-mysql
state: present
IV.4.2. Création du groupe vmail et l’utilisateur vmail
Le module command est utilisé pour exécuter la commande de création du groupe
d’utilisateur et de l’utilisateur vmail.
- name: Création du groupe vmail
command:
groupadd -g 5000 vmail
- name: Création du groupe vmail
command:
useradd -u 5000 -g vmail -s /usr/bin/nologin -d /home/vmail -m vmail
IV.4.3. Configuration de l’interface d’écoute
Le module command est utilisé pour exécuter la commande postconf.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 38
CHAPITRE IV : MISE EN ŒUVRE
- name: Configuration de l’interface d’écoute
command:
postconf -e ‘inet_interfaces = loopback-only
IV.4.4. Configuration du gestionnaire de messagerie
Le module lineinfile est utilisé pour ajouter du contenu au fichier /etc/aliases.
- name: Configuration du gestionnaire de messagerie
lineinfile:
path: "/etc/aliases"
line: |
root: user
create: yes
insertafter: "# end of file"
IV.4.5. Validation de la configuration du gestionnaire de messagerie
Le module command est utilisé pour exécuter la commande postalias.
- name: Validation de la configuration du gestionnaire de messagerie
command:
postalias /etc/aliases
IV.4.6. Configuration des boîtes aux lettres des utilisateurs du système
La commande postconf est utilisé pour effectuer cette tâche.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 39
CHAPITRE IV : MISE EN ŒUVRE
- name: Configuration des boîtes aux lettres des utilisateurs du système
command:
postconf -e home_mailbox=/home/vmail
notify: postfix restart
IV.4.7. Configuration TLS pour le serveur smtpd de Postfix
Dans cette partie également, la commande postconf est utiliser avec différent paramètres
pour la configuration des règles TLS.
- name: Configuration TLS pour le serveur smtpd de Postfix
command:
postconf -e tls_random_source=dev:/dev/urandom
smtpd_use_tls=yes smtpd_tls_auth_only=yes
smtpd_tls_security_level=may
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- name: Configuration TLS pour le serveur smtpd de Postfix
IV.4.8. Configuration TLS pour le client
command:
Pour effectuer cette -e
postconf configuration, la commande postconf a encore été utilisé et cela à
tls_random_source=dev:/dev/urandom
l’aide dusmtpd_use_tls=yes
module command. smtpd_tls_auth_only=yes
smtpd_tls_security_level=may
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- name: Configuration TLS pour le client
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
command:
postconf -e smtp_use_tls=yes smtp_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_session_cache_database=btree:${data_directory}/smtp_scache
- name: Configuration TLS pour le client
command:
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 40
postconf -e smtp_use_tls=yes smtp_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
CHAPITRE IV : MISE EN ŒUVRE
IV.4.9. Configuration des informations de connexion au relaie google
Cette étape correspond à l’insertion des informations de connexion au relaie Google dans
le fichier /etc/postfix/sasl/sasl_passwd.
- name: Informations de connexion au relaie google
lineinfile:
path: "/etc/postfix/sasl/sasl_passwd"
line: |
[smtp.gmail.com]:587
[email protected]:ygvpyhldoiqujhth
create: yes
insertafter: "# end of file"
IV.4.10. Autorisation des connections TLS
Elle correspond à l’activation du service TLS.
- name: Autoriser les connections TLS
lineinfile:
path: "/etc/postfix/master.cf"
line: |
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
insertafter: "# end of file"
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 41
- name: Autoriser les connections TLS
lineinfile:
CHAPITRE IV : MISE EN ŒUVRE
IV.4.11. Configuration du client SASL de Postfix
Elle consiste en la mise en place des règles pour le SASL.
- name: Configuration du client SASL de Postfix
command:
postconf -e 'relayhost = [smtp.gmail.com]:587'
'smtp_sasl_mechanism_filter = plain' 'smtpd_sasl_auth_enable = yes'
'smtpd_sasl_type = dovecot' 'smtpd_sasl_path = /var/run/dovecot/auth-
client' 'smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination'
'smtpd_relay_restrictions = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination'
'smtpd_sasl_security_options = noanonymous'
'smtpd_sasl_tls_security_options = $smtpd_sasl_security_options'
'smtpd_sasl_local_domain = $mydomain' 'smtpd_tls_loglevel = 1'
'smtp_tls_security_level = encrypt' 'smtp_tls_loglevel = 1'
'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
IV.4.12.- name: Configuration
Configuration dudu client SASL
support de Postfix
MySQL
command:
Elle consiste en la configuration des variables qui permettrons à postfix de se connecter à
postconf -e 'relayhost = [smtp.gmail.com]:587'
la base de'smtp_sasl_mechanism_filter
données. = plain' 'smtpd_sasl_auth_enable = yes'
'smtpd_sasl_type = dovecot' 'smtpd_sasl_path = /var/run/dovecot/auth-
- name:client' 'smtpd_recipient_restrictions
Configuration du support MySQL = permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination'
command:
'smtpd_relay_restrictions = permit_mynetworks,
postconf -e 'relay_domains = $mydestination'
permit_sasl_authenticated, 'virtual_alias_maps =
reject_unauth_destination'
proxy:mysql:/etc/postfix/virtual_alias_maps.cf,proxy:mysql:/etc/postfix/virtual_alias
'smtpd_sasl_security_options = noanonymous'
_domains_maps.cf' 'virtual_alias_domains
'smtpd_sasl_tls_security_options =
= $smtpd_sasl_security_options'
proxy:mysql:/etc/postfix/virtual_alias_domains.cf' 'virtual_mailbox_domains
'smtpd_sasl_local_domain = $mydomain' 'smtpd_tls_loglevel = 1' =
proxy:mysql:/etc/postfix/virtual_mailbox_domains.cf'
'smtp_tls_security_level = encrypt' 'smtp_tls_loglevel'virtual_mailbox_maps
= 1' =
proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf' 'virtual_mailbox_base =
'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
/home/vmail' 'virtual_mailbox_limit = 512000000' 'virtual_minimum_uid = 5000'
'virtual_transport = virtual' 'virtual_uid_maps = static:5000' 'virtual_gid_maps =
static:5000' 'local_transport = virtual' 'local_recipient_maps =
$virtual_mailbox_maps' 'transport_maps = hash:/etc/postfix/transport'
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 42
CHAPITRE IV : MISE EN ŒUVRE
IV.4.13. Création et configuration du fichier virtual_alias_maps.cf
C’est un fichier qui contient les informations nécessaires pour récupérer les alias virtuels
dans la base de données.
- name: Création et configuration du fichier virtual_alias_maps.cf
lineinfile:
path: "/etc/postfix/virtual_alias_maps.cf"
line: |
user = postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
table = alias
select_field = goto
where_field = address
create: yes
insertafter: "# end of file"
- name: Création et configuration du fichier virtual_alias_maps.cf
lineinfile:
IV.4.14.Création et configuration du fichier virtual_mailbox_domains.cf
path: "/etc/postfix/virtual_alias_maps.cf"
C’est un fichier
line: |qui contient les informations nécessaires pour récupérer les domaines
virtuels dans user
la base de données.
= postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
table = alias
select_field = goto
where_field = address
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 43
create: yes
insertafter: "# end of file"
CHAPITRE IV : MISE EN ŒUVRE
- name: Création et configuration du fichier virtual_mailbox_domains.cf
lineinfile:
path: "/etc/postfix/virtual_mailbox_domains.cf"
line: |
user = postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
table = domain
select_field = domain
where_field = domain
create: yes
insertafter: "# end of file"
IV.4.15. Création et configuration du fichier virtual_mailbox_maps.cf
Ce fichier permet de définir les correspondances entre les adresses e-mail virtuelles et les
emplacements réels des boîtes aux lettres.
- name: Création et configuration du fichier virtual_mailbox_maps.cf
lineinfile:
path: "/etc/postfix/virtual_mailbox_maps.cf"
line: |
user = postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
create: yes
insertafter: "# end of file"
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 44
CHAPITRE IV : MISE EN ŒUVRE
IV.4.16. Création et configuration du fichier virtual_alias_domains_maps.cf
Ce fichier permet de spécifier des domaines pour lesquels des alias virtuels doivent être
définis.
- name: Création et configuration du fichier virtual_alias_domains_maps.cf
lineinfile:
path: "/etc/postfix/virtual_alias_domains_maps.cf"
line: |
user = postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE
alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@',
alias_domain.target_domain) AND alias.active = '1' AND
alias_domain.active='1'
IV.4.17.create:
Création
yes et configuration du fichier virtual_alias_domains.cf
Ce fichier permet de"#rediriger
insertafter: des e-mails destinés à des adresses spécifiques dans ces
end of file"
domaines vers d'autres adresses.
-- name:
name: Création
Création et
et configuration
configuration du
du fichier
fichier virtual_alias_domains.cf
virtual_alias_domains_maps.cf
lineinfile:
lineinfile:
path: "/etc/postfix/virtual_alias_domains.cf"
path: "/etc/postfix/virtual_alias_domains_maps.cf"
line: ||
line:
user
user == postfix
postfix
password = xxxx
hosts = 192.168.122.12
dbname = postfix
query
query == SELECT
SELECT alias_domain FROM alias_domain
goto FROM alias,alias_domain WHERE
WHERE
alias_domain='%s' AND active
alias_domain.alias_domain = '1'and alias.address = CONCAT('%u', '@',
= '%d'
alias_domain.target_domain)
create: yes AND alias.active = '1' AND
alias_domain.active='1'
insertafter:
Mémoire de "# end of file"
Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 45
create: yes
notify: postfix restart
insertafter: "# end of file"
CHAPITRE IV : MISE EN ŒUVRE
IV.4.18. Exécution du rôle postfix
Pendant l’exécution du script on aura besoin du fichier postfix/handlers/main.yml. C’est
un fichier déclenché à la fin d'une série de tâches si des changements ont été apportés.
Celui-ci permet de redémarrer le service postfix.
- name: "postfix restart"
service:
name: "postfix"
state: "restarted"
Pour exécuter le script, il faut un playbook permettant d’exécuter le rôle postfix :
- name: "Installation et configuration de postfix"
hosts: mail1
gather_facts: no
roles:
- role: postfix
Pour l’exécuter : ansible-playbook -i inventaire.ini postfix.yml --become --ask-become-
pass
Figure IV - 3 : Exécution du playbook postfix
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 46
CHAPITRE IV : MISE EN ŒUVRE
IV.5. INTEGRATION AVEC MYSQL
Les tâches exécutées par le rôle mysql sont présentés dans cette partie.
IV.5.1. Installation et activation de mysql-server
Elle consiste à l’installation et l’activation de MySQL-server.
- name: "Installation de mysql-server"
apt:
name: "mysql-server"
state: "present"
- name: "Activation de mysql"
service:
name: "mysql"
state: "started"
enabled: yes
- name: "Installation de mysql-server"
IV.5.2. Activation de l'écoute sur tous les ports IPv4
apt:
Cela permettra aux autres serveurs de se connecter à la base de données.
name: "mysql-server"
state: "present"
- name: Activation de l'écoute sur tous les ports IPv4
- name: "Activation de mysql"
replace:
service:
path: /etc/mysql/mysql.conf.d/mysqld.cnf
name: "mysql"
regexp: '127.0.0.1'
state: "started"
replace: '0.0.0.0'
enabled: yes
- name: Activation de l'écoute sur tous les ports IPv4
IV.5.3. Création des bases de données postfix et roundcube
replace:
A cette étape, les bases de données postfix et roundcube sont créées.
path: /etc/mysql/mysql.conf.d/mysqld.cnf
regexp: '127.0.0.1'
replace:
Mémoire de Licence '0.0.0.0' – Système & réseaux
Professionnelle Hans Eyram SODAHLON 47
CHAPITRE IV : MISE EN ŒUVRE
- name: "Create database postfix"
mysql_db:
name: "postfix"
state: present
- name: "Create database roundcube"
mysql_db:
name: "roundcube"
state: present
IV.5.4. Création des utilisateurs mysql postfix et roundcube
- name: "Create database postfix"
Les utilisateurs postfix et roundcube sont créés et sont respectivement associés aux bases
mysql_db:
de données postfix et roundcube.
name: "postfix"
state: present
- name: "Create MySQL user postfix"
- name: "Create database roundcube"
mysql_user:
mysql_db:
name: "postfix"
name: "roundcube"
password: "xxxx"
state: present
priv: "postfix.*:ALL"
state: present
host: 192.168.122.11
- name: "Create MySQL user roundcube"
mysql_user:
name: "roundcube"
password: "xxxx"
priv: "roundcube.*:ALL"
state: present
host: 192.168.122.11
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 48
CHAPITRE IV : MISE EN ŒUVRE
IV.5.5. Exécution du rôle mysql
Ce playbook contient le script qui exécute le rôle mysql.
- name: "Installation MySQL"
hosts: bdd1
gather_facts: no
roles:
- role: mysql
Pour l’exécuter : ansible-playbook -i inventaire.ini mysql.yml --become --ask-become-
pass
Figure IV - 4 : Exécution du playbook mysql
IV.6. MISE EN PLACE D’APACHE
Les tâches gérées par le rôle Apache sont présentés dans cette partie.
IV.6.1. Installation d’Apache
Cette tâche est celle de l’installation du serveur web Apache.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 49
CHAPITRE IV : MISE EN ŒUVRE
- name: "Installation d'apache"
apt:
name: "apache2"
state: "present"
IV.6.2. Installation de PHP
Le script suivant permet d’installer PHP et ces extensions.
- name: "Installation d'apache"
- name: "Installation apt:
de PHP et ses extensions"
apt: name: "apache2"
name: "php,php-mysql,php-xml,php-mbstring,php-intl,libapache2-mod-php"
state: latest state: "present"
notify: "apache restart"
IV.6.3. Exécution du rôle Apache
- name: contient
Ce playbook "Installation de PHP
le script et ses extensions"
qui exécute le rôle Apache :
apt:
- name: "Installation apache"
name: "php,php-mysql,php-xml,php-mbstring,php-intl,libapache2-mod-php"
hosts: mail1
state: latest
gather_facts: no
notify: "apache restart"
roles:
- role: "apache"
Pour l’exécuter : ansible-playbook -i inventaire.ini Apache.yml --become --ask-become-
pass
- name: "Installation apache"
hosts: mail1
gather_facts: no
roles:
- role: "apache"
Figure IV - 5 : Exécution de playbook apache
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 50
CHAPITRE IV : MISE EN ŒUVRE
IV.7. MISE EN PLACE DE DOVECOT
Dans cette partie nous verrons les tâches exécutés par le rôle dovecot.
IV.7.1. Installation de dovecot
Cette tâche permet l’installation de dovecot et ses dépendances.
- name: Installation de dovecot
apt:
name: dovecot-imapd, dovecot-pop3d, dovecot-mysql
state: present
IV.7.2. Configuration de connexion à la base de données
A cette étape, le fichier dovecot-sql.conf est créer pour contenir les informations de
connexion à la base de données.
- name: Configuration du fichier dovecot-sql.conf
lineinfile:
path: "/etc/dovecot/dovecot-sql.conf"
line: |
driver = mysql
connect = host=192.168.122.12 dbname=postfix user=postfix password=xxxx
default_pass_scheme = SHA512-CRYPT
# Get the mailbox
user_query = SELECT '/home/vmail/%d/%n' as home,
'maildir:/home/vmail/%d/%n' as mail, 5000 AS uid, 5000 AS gid,
concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u'
AND active = '1'
# Get the password
password_query = SELECT username as user, password, '/home/vmail/%d/%n' as
userdb_home, 'maildir:/home/vmail/%d/%n' as userdb_mail, 5000 as userdb_uid, 5000
as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
insertafter: "# end of file"
create: yes
notify: dovecot restart
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 51
- name: Configuration du fichier dovecot-sql.conf
CHAPITRE IV : MISE EN ŒUVRE
IV.7.3. Configuration de base de Dovecot
Cette configuration est dans le fichier dovecot.conf.
- name: Configuration du fichier dovecot.conf
lineinfile:
path: "/etc/dovecot/dovecot.conf"
line: |
protocols = imap pop3
auth_mechanisms = plain
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}
service auth {
unix_listener auth-client {
group = postfix
mode = 0660
user = postfix
}
user = root
}
mail_home = /home/vmail/%d/%n
mail_location = maildir:~
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
insertafter: "# end of file"
state: present
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 52
CHAPITRE IV : MISE EN ŒUVRE
IV.7.4. Exécution du rôle dovecot
Ce playbook contient le script qui exécute le rôle dovecot.
- name: "Installation et configuration de Dovecot"
hosts: mail1
gather_facts: no
roles:
- role: dovecot
Pour l’exécuter : ansible-playbook -i inventaire.ini dovecot.yml --become --ask-become-
pass - name: "Installation et configuration de Dovecot"
hosts: mail1
gather_facts: no
roles:
- role: dovecot
Figure IV - 6 : Exécution du playbook dovecot
IV.8. MISE EN PLACE DE POSTFIXADMIN
Le rôle postfixadmin exécute les tâches de l’installation et de configuration de
postfixadmin.
IV.8.1. Installation
Cette première tâche est l’installation de postfixadmin.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 53
CHAPITRE IV : MISE EN ŒUVRE
- name: "Installation de postfixadmin"
apt:
name: "postfixadmin"
state: "present"
IV.8.2. Configuration
- name: "Installation de postfixadmin"
La configuration apt:
de base de postfixadmin est faite dans le fichier config.local.
name: "postfixadmin"
- name: Création
state: et configuration du fichier config.local.php
"present"
lineinfile:
path: "/etc/postfixadmin/config.local.php"
line: |
<?php
$CONF['configured'] = true;
// correspond to dovecot maildir path /home/vmail/%d/%u
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = '192.168.122.12 ';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'xxxx';
$CONF['database_name'] = 'postfix';
$CONF['default_aliases'] = array (
'abuse' => '[email protected]’,
'hostmaster' => '[email protected]',
'postmaster' => '[email protected]',
'webmaster' => '[email protected]'
);
$CONF['vacation_domain'] = 'autoreply.imanagemyorg.com’;
$CONF['footer_text'] = 'Return to imanagemyorg.com';
$CONF['footer_link'] = 'http://mail.imanagemyorg.com';
$CONF['setup_password'] = 'yourhashhere';
create: yes
insertafter: "# end of file"
- name: Création et configuration du fichier config.local.php
lineinfile:
path: "/etc/postfixadmin/config.local.php"
line: | Professionnelle – Système & réseaux
Mémoire de Licence Hans Eyram SODAHLON 54
<?php
CHAPITRE IV : MISE EN ŒUVRE
IV.8.3. Exécution du rôle postfixadmin et accès à l’interface postfixadmin
Ce playbook contient le script qui exécute le rôle postfixadmin.
- name: "Installation et configuration de postfixadmin"
hosts: mail1
gather_facts: no
roles:
- role: postfixadmin
Pour l’exécuter : ansible-playbook -i inventaire.ini postfixadmin.yml --become --ask-
- name: "Installation et configuration de postfixadmin"
become-pass
hosts: mail1
gather_facts: no
roles:
- role: postfixadmin
Figure IV - 7 : Exécution du playbook postfixadmin
A la fin de l’exécution du playbook, on peut accéder à la page setup de postfixadmin.
Figure IV - 8 : Page setup de postfixadmin
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 55
CHAPITRE IV : MISE EN ŒUVRE
Sur cette page, on génère un hashcode qu’on attribue au paramètre
$CONF['setup_password'] dans le fichier /etc/postfixadmin/config.local.php et on
actualise la page. Une nouvelle page s’ouvre nous permettant de créer un compte
superadministrateur.
Figure IV - 9 : Création du compte superadministrateur
Après avoir créé le compte de l’administrateur, on peut accéder à la page de
connexion de postfixadmin.
Figure IV - 10 : Page de connexion postfixadmin
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 56
CHAPITRE IV : MISE EN ŒUVRE
On a enfin accès à la page d’accueil de l’interface d’administration de postfix.
Figure IV - 11 : Page d'accueil postfixadmin
IV.9. DEPLOIEMENT DE ROUNDCUBE
Ce déploiement est géré par le rôle roundcube ; ses tâches sont présentées dans cette
partie.
IV.9.1. Installation
Cette tâche est destinée à l’installation de roundcube.
- name: "Installation de roundcube"
apt:
name: "roundcube"
state: "present"
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 57
CHAPITRE IV : MISE EN ŒUVRE
IV.9.2. Configuration des paramètres de connexion à la base de données
Il s’agit de renseigner les informations de connexion à la base de données.
- name: Configure Roundcube Database Settings
replace:
path: /etc/roundcube/debian-db.php
regexp: "{{ item.regexp }}"
replace: "{{ item.line }}"
loop:
- { regexp: '^(\$dbuser=).*', line: "$dbuser = 'roundcube';" }
- { regexp: '^(\$dbpass=).*', line: "$dbpass = 'xxxx';" }
- { regexp: '^(\$dbname=).*', line: "$dbname = 'roundcube';" }
- { regexp: '^(\$dbserver=).*', line: "$dbserver = '192.168.122.12 ';" }
- { regexp: '^(\$dbport=).*', line: "$dbport = '3306';" }
- { regexp: '^(\$dbtype=).*', line: "$dbtype = 'mysql';" }
IV.9.3. Installation de PyMySQL
Cette extension va permettre à ansible d’exécuter des tâches sur une base de données
installée sur un autre serveur.
- name: Installation de PyMySQL
command:
pip3 install PyMySQL
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 58
CHAPITRE IV : MISE EN ŒUVRE
IV.9.4. Initialisation de la base de données et accès à l’interface de
roundcube
A cette étape, le fichier /usr/share/roundcube/SQL/mysql.initial.sql est importé sur le
serveur pour initialiser la base de données.
- name: Initialisation de la base de données roundcube
mysql_db:
login_user: roundcube
login_host: 192.168.122.12
login_port: 3306
name: roundcube
login_password: "xxxx"
state: import
target: /usr/share/roundcube/SQL/mysql.initial.sql
- name: Initialisation de la base de données roundcube
Pour exécuter le rôle roundcube on utilise le Playbook roundcube.yml :
mysql_db:
login_user: roundcube
- name: "Installation et configuration de
login_host: 192.168.122.12
postfixadmin"
login_port:
hosts: mail1 3306
gather_facts: no
name: roundcube
roles:
login_password: "xxxx"
- role: postfixadmin
state: import
target: /usr/share/roundcube/SQL/mysql.initial.sql
- name: "Installation et configuration de
Pour l’exécuter : ansible-playbook -i inventaire.ini roundcube.yml --become --ask-
postfixadmin"
become-pass
hosts: mail1
gather_facts: no
roles:
postfixadmin– Système & réseaux
- role:Professionnelle
Mémoire de Licence Hans Eyram SODAHLON 59
CHAPITRE IV : MISE EN ŒUVRE
Figure IV - 12 : Exécution du playbook roundcube
On peut maintenant accéder au webmail roundcube et se connecter avec les
utilisateurs créés dans postfixadmin.
Figure IV - 13 : Page de connexion roundcube
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 60
CHAPITRE IV : MISE EN ŒUVRE
IV.10. EVALUATION FINANCIERE
L’évaluation financière du projet a été réalisée en fonction de trois éléments : les
ressources humaines, les ressources matérielles et le coût lié à la maintenance.
Les ressources humaines comprennent :
- coût d’implémentation de la solution : il s’agit des coûts liés à l’étude et à la
conception du script;
- coût de formation des utilisateurs : il concerne le coût de formation des
informaticiens, essentiellement les administrateurs réseaux et le personnel. Cette
formation portera sur les différentes configurations, le fonctionnement, le
paramétrage et l’utilisation des services.
Le coût lié à la maintenance est un contrat de maintenance des équipements signé entre
l’entreprise et le prestataire de service pour garantir un état de fonctionnement optimal
des équipements, c’est-à-dire assurer la disponibilité des services et ressources pour les
besoins de l’entreprise et éviter les pannes.
Le tableau suivant donne un résumé du coût de réalisation du projet de mise en place
d’un serveur de messagerie à l’aide d’un script Ansible :
Tableau IV - 1 : Tableau du coût matériel
Coût matériel
Prix Unitaire HT Prix total HT
Désignation Quantité
(en F.CFA) (en F.CFA)
Serveur [13] 2 465.000 930.000
Onduleur [14] 1 410.000 410.000
Total (1) 1.340.000
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 61
CHAPITRE IV : MISE EN ŒUVRE
Tableau IV - 2 : Tableau du coût d'implémentation
Coût d’implémentation
Prix/heures Nombre Prix total (en
Désignation
(en F.CFA) d’heures F.CFA)
Coût d’étude et de conception
20000 24 480.000
du script
Total (2) 24 480.000
Tableau IV - 3 : Tableau du coût de la formation
Coût de la formation
Prix de la
formation Durée de la
Nombre Prix total
Désignation par formation
de formé (En F.CFA)
personne (jours)
(En F.CFA)
Formation 20 5.000 1jrs (2h/jrs) 100.000
(utilisateurs)
Formation
1 10.000 1jrs (2h/jrs) 10.000
(administrateur)
Documents
pour 50.000
formation
Total (3) 160.000
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 62
CHAPITRE IV : MISE EN ŒUVRE
Tableau IV - 4 : Tableau du coût de la maintenance
Coût lié à la maintenance sur 1 an
Coût mensuel Prix total HT
Désignation Quantité (En F.CFA) (En F.CFA)
1 (contrôle
Contrat annuel
tous les 200.000 2.400.000
deux mois)
Total (4) 2.400.000
Tableau IV - 5 : Tableau récapitulatif des coûts
Récapitulatif des Coûts
Total (1) 1.340.000 F.CFA
Total (2) 480.000 F.CFA
Total (3) 160.000 F.CFA
Total (4) 2.400.000 F.CFA
Total=total (1) +total (2) +total (3)
4.380.000 F.CFA
+total (4)
IV.11. CONCLUSION
Le cœur de notre mise en œuvre a été la configuration automatisée de Postfix. Nous
avons examiné en détail comment Ansible simplifie chaque aspect de cette tâche
complexe, de l'installation initiale au paramétrage avancé. Nous avons pris des concepts
théoriques et les avons traduits en action concrète, créant une infrastructure de
messagerie automatisée qui pourrait potentiellement servir de modèle pour d'autres cas
d'automatisation.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 63
CONCLUSION GENERALE
CONCLUSION GENERALE
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 64
CONCLUSION GENERALE
Ce mémoire a exploré en profondeur l'automatisation des tâches avec Ansible, en se
concentrant sur le déploiement automatisé du service de messagerie Postfix. À travers
cette recherche, nous avons mis en lumière l'importance de l'automatisation dans la
gestion des infrastructures informatiques et son rôle central dans l'optimisation des
opérations.
L'automatisation est bien plus qu'une simple tendance technologique. Elle est devenue
un impératif pour les organisations modernes cherchant à gagner en efficacité, en
sécurité et en agilité.
Au fil de ce travail, nous avons également identifié les avantages et les défis de
l'automatisation. L'automatisation offre la rapidité, la précision et la reproductibilité,
permettant aux équipes informatiques de consacrer plus de temps à des tâches
stratégiques. Cependant, elle exige une planification minutieuse, une expertise et une
maintenance continue.
L'automatisation ne se limite pas au présent, elle ouvre également la voie à des
perspectives passionnantes pour l'avenir. Les technologies évoluent rapidement, et
l'automatisation continuera à jouer un rôle central dans la gestion des infrastructures,
notamment avec des concepts comme Kubernetes qui émergent comme des pierres
angulaires de l'orchestration des conteneurs.
En conclusion, ce mémoire est une invitation à embrasser l'automatisation comme un
outil puissant pour améliorer la gestion de l'infrastructure informatique. Nous espérons
que cette étude contribuera à sensibiliser davantage aux avantages de l'automatisation, à
inspirer de nouvelles initiatives dans ce domaine et à encourager l'exploration de
nouvelles technologies et approches pour rendre nos environnements informatiques plus
efficaces et plus sûrs.
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 65
BIBLIOGRAPHIE
BIBLIOGRAPHIE
[1] «Les commandes Bash : définition et fonctionnement,» [En ligne]. Available:
https://www.pierre-giraud.com/shell-
bash/commande/#:~:text=Fonctionnement%20g%C3%A9n%C3%A9ral%20de%2
0Bash&text=Les%20commandes%20sont%20au%20c%C5%93ur,renvoie%20%C
3%A0%20la%20commande%20suivante.. [Accès le 13 Septembre 2023].
[2] «Bash Scripting vs. Python : Choisir le bon langage pour l’automatisation,» [En
ligne]. Available: https://nextdoorsec.com/fr/bash-scripting-vs-python-choisir-le-
bon-langage-pour-lautomatisation/. [Accès le 13 Septembre 2023].
[3] «Introduction au cours tutoriel complet sur Ansible,» [En ligne]. Available:
https://devopssec.fr/article/introduction-cours-complet-ansible. [Accès le 13
Septembre 2023].
[4] «Présentation ansible,» [En ligne]. Available:
https://docs.rocheralexandre.com/ansible/ansiblePresentation/. [Accès le 13
Septembre 2023].
[5] «Avantages et fonctionnement d'Ansible,» [En ligne]. Available:
https://devopssec.fr/article/avantages-fonctionnement-ansible. [Accès le 13
Septembre 2023].
[6] «Terraform vs Ansible : quelle est la différence ?,» [En ligne]. Available:
https://fr.linux-console.net/?p=19928#gsc.tab=0. [Accès le 13 septembre 2023].
[7] «Qu'est-ce-que Kubernetes ?,» [En ligne]. Available:
https://kubernetes.io/fr/docs/concepts/overview/what-is-kubernetes/. [Accès le 13
septembre 2023].
[8] «Qu'est-ce-que Kubernetes (K8s) ?,» [En ligne]. Available:
https://www.redhat.com/fr/topics/containers/what-is-kubernetes#fonctionnement.
[Accès le 13 septembre 2023].
[9] «Comprendre le fonctionnement de Kubernetes,» [En ligne]. Available:
https://www.redhat.com/fr/topics/containers/learning-kubernetes-
tutorial#architecture-kubernetes. [Accès le 13 septembre 2023].
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 66
BIBLIOGRAPHIE
[10] «Présentation de l'architecture Kubernetes,» [En ligne]. Available:
https://www.redhat.com/fr/topics/containers/kubernetes-architecture. [Accès le 13
septembre 2023].
[11] «Installer kubeadm | Kubernets,» [En ligne]. Available:
https://kubernetes.io/fr/docs/setup/production-environment/tools/kubeadm/install-
kubeadm/. [Accès le 13 Septembre 2023].
[12] «Qu’est-ce que Kubernetes et quelle est son utilité,» [En ligne]. Available:
https://www.padok.fr/blog/kubernetes-utilite#avantages. [Accès le 13 Septembre
2023].
[13] [En ligne]. Available: https://www.amazon.com/PowerEdge-R730XD-E5-2650v3-
Storage-
Renewed/dp/B083Q2J7VD/ref=sr_1_3?crid=33SEK1RTC6T3F&keywords=server
+dell&qid=1699112276&sprefix=server+del%2Caps%2C860&sr=8-3. [Accès le
13 Septembre 2023].
[14] [En ligne]. Available: https://www.ldlc.com/fiche/PB00250140.html. [Accès le 13
septembre 2023].
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON 67
ANNEXES
ANNEXES
- Annexe 1 : Organigramme de DEFITECH
Directeur
Général
Directeur
des etudes
Division Division
Comptabilité Division Système Secrétariat Secrétariat
Maintenance Développement d'Information Pédagogique Administratif
Figure 1 - Organigramme de DEFITECH
Source : M. MESSI ELPHEGE « ETUDE ET MISE EN PLACE D’UN
CONTROLEUR DE DOMAINE, D’UN SERVEUR DE FICHIERS COUPLE D’UN
VPN CLIENT-SERVEUR : CAS DE AGR »,
Date : 2020, [09 Octobre 2022]
- Annexe 2 : Plan de localisation de DEFITECH
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON I
ANNEXES
Figure 2 - Situation géographique de DEFITECH
- Annexe 3 : Organigramme de TECH-PRO
Figure 3 - Organigramme de TECH-PRO
Mémoire de Licence Professionnelle – Système & réseaux Hans Eyram SODAHLON II