Vous êtes sur la page 1sur 15

ESTM 23/24

Ecole Supérieure de Technologie et de Management

Département Sciences et Technologies

Réseaux et Télécommunications
Niveau : Licence 3

GROUPE 5
Chef de groupe : OUSSEYNATOU SARR
MAMADOU MOUDJOUTABA DIALLO
ABDELHACK ISSA HARTAGA
MOUSSA DIEYE

Professeur : Dr. Kéba GUEYE


PROJET :
Mise en Place d’une Plate-forme de Services Télécoms dans Docker

1
ESTM 23/24

INTRODUCTION :
Docker permet d'utiliser plusieurs services grâce à des conteneurs. Ces conteneurs sont
indépendants les uns des autres, mais pourront communiquer ensemble si nécessaire. Une des
forces de Docker, est la possibilité de démarrer et d'arrêter des services très rapidement. Avec
docker il est possible de créer une image personnalisée à partir d'une autre image parente.
L'image contient toutes les informations nécessaires pour créer un conteneur ou en d'autres
termes, le conteneur va se baser sur une image pour se construire.
Contexte :
Dans le cadre de la croissance d’une entreprise et pour répondre à ses besoins évolutifs, On va
déployer une infrastructure de services informatiques variés.
Services Déployés :
1. Service de Téléphonie sur IP (ToIP) :
Pour améliorer la communication interne et externe de l'entreprise, vous avez mis en place un
système de Téléphonie sur IP basé sur la plateforme Docker. Cette solution utilise Asterisk
pour la gestion des appels vocaux et de la VoIP.
2. Serveur VPN :
Afin de sécuriser les communications entre les employés travaillant à distance et le réseau de
l'entreprise, un serveur VPN a été déployé. Il offre un accès sécurisé aux ressources internes
de l'entreprise depuis l'extérieur.
3. Serveur Nextcloud :
Pour faciliter le stockage, le partage et la collaboration sur les fichiers, ainsi que pour fournir
des outils de collaboration, un serveur Nextcloud a été installé. Il offre à l'entreprise une
solution de stockage de fichiers sécurisée et évolutive.
Objectifs :
• Communication Améliorée : Offrir une communication améliorée avec un système
ToIP fiable et extensible pour les appels vocaux et la VoIP.
• Sécurité Renforcée : Garantir la sécurité des communications externes avec un accès
sécurisé via le serveur VPN.
• Collaboration Simplifiée : Faciliter le stockage, le partage et la collaboration sur les
fichiers avec Nextcloud, offrant ainsi une plateforme centrale pour la gestion des
données.
• Évolutivité et Gestion Facilitée : Utiliser la modularité des conteneurs Docker pour
une gestion plus simple et une évolutivité aisée des services.
Bénéfices :
En combinant la téléphonie sur IP, le serveur VPN et Nextcloud dans un environnement
Docker, l'entreprise bénéficie d'une infrastructure informatique moderne, sécurisée et flexible,

2
ESTM 23/24

favorisant la collaboration, la sécurité des communications et la gestion simplifiée des


services.
On va aussi ajouter un service DNS pour permettre la résolution des adresses.
La plateforme est hébergée dans un serveur WEB tournant avec Apache2.

Mise en place :
Pour ce faire on va utiliser deux concepts des dockers qui sont les dockerfiles et docker-
compose.
Voici une briève définition du concept de docker-compose :
Docker Compose est un outil qui permet de définir et de gérer des applications multi-
conteneurs dans des environnements Docker. Il utilise un fichier YAML pour configurer les
services, leurs dépendances et les paramètres associés, facilitant ainsi le déploiement et la
gestion de systèmes complexes.

Installation de docker :

Installation de docker-compose :

Pour la mise en place on va créer des images pour chaque service à partir de Dockerfiles
qu’on va rédiger. Mais d’abord, un résumé de ce qu’est un dockerfile :
Le Dockerfile est un fichier (sans extension) utilisé par Docker. Il permet de construire une
image à partir d'une autre, pour, par exemple, y ajouter des fonctionnalités et des programmes.
Les commandes de bases pour le fonctionnement de Dockerfile sont :
- FROM : permet d'indiquer sur quelle image de base nous construirons notre propre
image personnalisée.
- RUN : lance une ou plusieurs commandes Linux pendant la phase de construction
de notre image
- WORKDIR : pour modifier le répertoire de travail actuel dans l'image Docker.

3
ESTM 23/24

- CMD : pour définir ce qui sera exécuté lorsque le conteneur est créé à l'aide de
l'image docker
- ADD et COPY : permettent de copier un dossier et/ou des fichiers qui se trouvent
dans notre machine locale vers le conteneur.
- EXPOSE : permet d'indiquer dans quel port le conteneur écoute.
- VOLUME : permet de créer automatiquement un répertoire dans la machine locale
et le conteneur qui seront liés.
- LABEL : ajoute des métadonnées à notre image. Une métadonnée est une
information.

Maintenant Passons à la création des images pour nos serveurs à partir des dockerfiles.
Tout d’abord on va créer un répertoire pour chaque service à l’intérieur duquel on va mettre le
dockerfile et les fichiers de configuration à ajouter à la création(si besoin).

Les répertoires sont nommés en correspondance avec le service qu’on veut configurer.
Creation des images :
- TOIP :
Le contenu du répertoire :

On va rédiger le dockerfile :

On a ensuite deux fichiers qui sont indispensables pour asterisk si on veut faire
correctement de la téléphonie sur IP qui sont extensions.conf et sip.conf.
extensions.conf :

Sip.conf :

4
ESTM 23/24

Maintenant construisons l’image avec la commande docker build -t nom_image .

Vérifions la création de l’image :

- VPN :
Pour ce service on va utiliser wireguard comme serveur. Pour cela on va partir
dans le github et récupérer un fichier .yml qui permet de le configurer et c’est ce
fichier qu’on va mettre dans le répertoire pour VPN.

5
ESTM 23/24

Pour le vpn vu qu’on utilise docker compose on créera l’image en meme temps
qu’on va démarrer l’application avec tous les services.
- DNS :
Le dockerfile pour DNS :

Construction de l’image :

Vérifions la construction de l’image :

6
ESTM 23/24

- Nextcloud :
Pour ce serveur on va ajouter ces informations directement dans le fichier docker-
compose.yml. Les informations à ajouter seront :

Nextcloud aura forcément besoin de base de donnée pour stocker les informations
d’où le rajout de ce derniers service nommé db utilisant comme image mariadb.
Configurons maintenant le fichier docker-compose.yml qui va permettre de démarrer les
services en meme temps :

7
ESTM 23/24

NB : le serveur de vpn utilise déjà un fichier .yml alors au démarrage on aura juste à démarrer
les deux fichiers en meme temps.

Mise en place du serveur web qui va héberger notre plateforme :


Pour ce serveur on va créer une image qu’on va nommé plateforme à partir du dockerfile
suivant :

On va créer au préalable deux pages :


- Index.html qui va etre la page d’accueil de notre plateforme et dans laquelle on va
mettre des boutons qui vont permettre d’accéder aux différents services. Ci-
dessous le contenu de cette page :

On a crée trois fonctions redirect qui vont gérer la redirection vers le service
choisi. Pour le service de téléphonie sur ip on sera redirigé vers la deuxième page
créée au préalable ;

8
ESTM 23/24

- Toip.html : on va configurer cette page de sorte que quand l’utilisateur clique sur
le bouton d’un numéro déjà configuré la machine ouvre microsip et lance l’appel
vers le numéro désiré. Ci-dessous le contenu de cette page :

Pour le serveur de vpn et de cloud ce sont déjà des pages web qu’on va ouvrir donc on n’a pas
besoin de configurer une page au préalable, on mettra juste les adresses correspondantes à
chaque service dans les fonctions redirect.
On va aussi éditer un fichier de configuration pour notre plateforme car ce sera un
hébergement par site qu’on va réaliser. Ce fichier on va l’appeler myplatform.conf et sera
envoyé dans le répertoire /etc/apache2/sites-available. Notre plateforme sera opérationnelle en
l’activant avec la commande a2ensite fichier_de_configuration(myplatform.conf). Ci-dessous
le contenu du fichier de config :

Construisons maintenant l’image pour notre plateforme :

9
ESTM 23/24

Evidemment après avoir configuré cela on va ajouter le service de notre plateforme dans le
fichier docker-compose.yml pour qu’on puisse démarrer celle-ci en meme temps que les
autres services.

Démarrage des services :

Vérification du démarrage des conteneurs :

10
ESTM 23/24

Phase Test :
Testons maintenant Notre plateforme de services.
Allons dans le navigateur d’une machine et tapons l’adresse de notre plateforme qui est le
192.168.1.15:9090 dans notre cas.
Ci-dessous on voit la page d’accueil de notre plateforme.

Passons au test des services. Pour chaque service on va cliquer sur le bouton correspondant.
- Tout d’abord le serveur de TOIP. En cliquant sur le bouton correspondant on est
rendu à la page suivante :

Essayons d’appeler le correspondant Oussey.

La machine nous demande d’autoriser ce site à ouvrir microsip. Et après avoir


accépté l’appel est lancé vers le numéro souhaité.
11
ESTM 23/24

- Passons au service de vpn. On est redirigé vers la page web du service là où on


peut créer un canal sur lequel on va connecter un périphérique(téléphone ou
machine)

12
ESTM 23/24

On voit bien que le téléphone est connecté au VPN.


- Test du DNS :

Le dns nous montre les services avec leurs adresses.


- Test du cloud :
En cliquant sur le bouton on est redirigé vers l’interface de nextcloud et en se
connectant on a la possibilité d’y conserver nos données

13
ESTM 23/24

14
ESTM 23/24

Notre plateforme est effectivement opérationnelle pour chaque service qu’on a configuré dans
nos différents conteneurs.

CONCLUSION :

Ce travail a démontré la polyvalence de Docker dans la création d'une infrastructure


modulaire. En utilisant des conteneurs distincts pour la Téléphonie sur IP, le serveur VPN et
Nextcloud, nous avons exploré les avantages d'une approche flexible. Grâce à Docker, nous
avons pu déployer ces services rapidement et les gérer facilement, tout en ajoutant un service
DNS pour une résolution d'adresses IP optimisée. Cette expérience souligne l'importance de
l'approche conteneurisée pour des déploiements agiles, une gestion simplifiée et une
évolutivité aisée, offrant ainsi une base solide pour comprendre les fondements de
l'infrastructure moderne.

15

Vous aimerez peut-être aussi