Stage Perl Webmin NTP / PTP Linux

Stage FEBUS OPTICS

Développement d'un module Webmin en Perl pour la configuration des protocoles de synchronisation temporelle NTP & PTP sur les systèmes Linux embarqués de l'entreprise.

2025 — 5 semaines
Présentiel — Pau, 64000
Secteur Fibre optique distribuée
Langage Perl — Outil Webmin

Contexte de l'entreprise

FEBUS OPTICS est une PME innovante fondée à Pau, spécialisée dans la conception et la commercialisation d'interrogateurs à fibre optique distribuée (DOFS — Distributed Optical Fiber Sensing). Ses équipements permettent de mesurer en temps réel des paramètres physiques (température, vibrations, déformations) sur des distances pouvant dépasser 50 km, grâce à l'analyse rétrodiffusion de la lumière dans la fibre.

Ses clients opèrent dans des secteurs critiques : énergie (pipelines, réseaux électriques), génie civil (barrages, tunnels), sécurité périmétrique et surveillance industrielle. La précision temporelle des acquisitions y est essentielle — d'où la nécessité de synchroniser rigoureusement les systèmes avec les protocoles NTP et PTP.

Le département informatique, à taille réduite, assure à la fois l'administration des serveurs Linux, le maintien du parc et le développement d'outils de gestion interne. Mon stage s'est inscrit dans cet environnement technique exigeant, axé sur la fiabilité et la précision.

Locaux FEBUS OPTICS
FEBUS OPTICS
FEBUS OPTICS
PME — Pau, Nouvelle-Aquitaine
SecteurInstrumentation optique
TechnologieDOFS / Fibre optique
MarchésÉnergie · Génie civil · Sécurité
OS systèmeLinux Debian
Durée5 semaines · 2025
PME Innovante Haute technicité

Les produits FEBUS OPTICS

FEBUS OPTICS conçoit une gamme d'interrogateurs à fibre optique distribuée (DOFS) permettant de surveiller des infrastructures critiques sur des dizaines de kilomètres. La précision temporelle des acquisitions — au cœur de ma mission — est indispensable à la fiabilité de ces équipements.

Mission & Problématique

"Les systèmes Linux embarqués de FEBUS OPTICS nécessitent une synchronisation temporelle précise pour garantir la cohérence des acquisitions DOFS. Comment concevoir une interface d'administration Webmin — développée en Perl — permettant de configurer, surveiller et gérer les protocoles NTP et PTP depuis un panneau web centralisé, sans accès à la ligne de commande ?"

Architecture de la solution

Administrateur Navigateur Web sans ligne de commande Connexion HTTPS port 10000 Module Webmin · Perl Interface Web d'administration Configuration NTP / PTP Consultation des logs & état de synchronisation HTTPS sécurisé · port 10000 Point d'entrée unique de l'admin Configuration NTP/PTP Logs & état de sync. $ _ Système Linux embarqué FEBUS Services NTP & PTP Horloge système synchronisée Linux Debian embarqué NTP (UDP 123) PTP (IEEE 1588) Sources de temps Serveur NTP pool.ntp.org · UDP 123 Horloge PTP Grandmaster · IEEE 1588 Précision nanoseconde (PTP) L'administrateur configure la synchronisation temporelle via l'interface Web — aucun accès à la ligne de commande requis.

Outils & Technologies

Perl
Perl
Langage de script utilisé pour développer le module Webmin — syntaxe CGI, manipulation de fichiers système et traitement de texte.
Webmin
Webmin
Interface d'administration web Linux. Les modules sont des scripts Perl CGI qui interagissent avec le système via l'API Webmin.
NTP — ntpd
Network Time Protocol. Synchronisation des horloges via le démon ntpd et configuration du fichier /etc/ntp.conf.
PTP — ptp4l
Precision Time Protocol (IEEE 1588). Synchronisation nanoseconde via ptp4l et phc2sys sur Linux.
Linux
Linux Debian
OS des systèmes embarqués FEBUS. Administration via terminal, gestion des services systemd, édition des fichiers de configuration.
Visual Studio Code
Éditeur principal pour le développement du module Perl. Extensions Perl, terminal intégré SSH pour les tests sur le serveur.

Exemple — Structure du module Perl

Perl · Module Webmin NTP/PTP
# Module Webmin — Configuration NTP/PTP # Fichier : module.info + index.cgi use WebminCore; init_config(); # Lecture de la configuration NTP courante sub get_ntp_config { my $conf = read_file_lines("/etc/ntp.conf"); return { servers => [grep { /^server/ } @$conf] }; } # Écriture et redémarrage du service sub save_ntp_servers { my (@servers) = @_; write_file("/etc/ntp.conf", \@servers); system("systemctl restart ntpd"); } # Statut de synchronisation PTP sub get_ptp_status { return `pmc -u -b 0 'GET TIME_STATUS_NP'`; }

Déroulement du stage

S1
Semaine 1
Prise en main & analyse de l'environnement
Découverte de l'entreprise et de son infrastructure Linux Debian. Analyse du fonctionnement des protocoles NTP et PTP, étude de la documentation Webmin et de l'API de création de modules. Installation et configuration d'un environnement de développement local.
Baie de brassage
Baie de brassage réseau
Switch Cisco
Switch Cisco — LAN
Point d'accès Cisco
Point d'accès Cisco
S2
Semaine 2
Architecture du module & maquette
Conception de l'architecture du module Webmin : structure des fichiers (module.info, index.cgi, lib.pl), définition des fonctionnalités (configuration serveurs NTP, état PTP, journaux). Réalisation d'une maquette de l'interface avant développement.
Maquette attendue du module — vue 1
Maquette manuscrite — configuration NTP
Maquette attendue du module — vue 2
Maquette manuscrite — configuration PTP
S3
Semaine 3
Développement du module NTP
Développement en Perl du sous-module NTP : lecture et écriture de /etc/ntp.conf, interface web de gestion des serveurs de temps, affichage du statut via ntpq, redémarrage du service via systemd depuis l'interface.
Module Webmin — configuration NTP
Module Webmin finalisé — interface de configuration NTP
S4
Semaine 4
Développement du module PTP
Extension du module au protocole PTP (IEEE 1588) : configuration de ptp4l et phc2sys, lecture du statut de synchronisation en temps réel, gestion des interfaces réseau PTP-compatibles et affichage des métriques d'offset.
Module Webmin — configuration PTP
Module Webmin finalisé — interface de configuration PTP
S5
Semaine 5
Vérification, déploiement & documentation utilisateur
Vérification du bon fonctionnement du module sur le système cible — que chaque bouton, chaque champ et chaque action produisent le résultat attendu. Déploiement du module sur le serveur Webmin. Rédaction d'une documentation utilisateur (prise en main, explication des champs, procédures) et du rapport de stage.

Résultats & Apprentissages

1
Module Webmin livré & déployé
NTP
+PTP
Deux protocoles intégrés
5 sem.
Autonomie sur stack Linux / Perl

Ce stage m'a offert une immersion dans un environnement technique de haute précision. J'ai découvert le langage Perl et son écosystème CGI dans le cadre réel du développement de modules Webmin, tout en approfondissant ma maîtrise de l'administration Linux via des commandes en ligne de commande — navigation dans l'arborescence système, manipulation des fichiers de configuration, gestion des services avec systemctl, consultation des logs avec journalctl et vérification du statut de synchronisation avec ntpq et pmc.

J'ai également eu l'occasion de brasser la baie de brassage réseau — relier physiquement les câbles entre les équipements (switch, serveurs, points d'accès) — ce qui m'a donné une vision concrète de l'infrastructure réseau sur laquelle reposent les systèmes FEBUS OPTICS.

La compréhension des protocoles NTP et PTP — jusqu'alors inconnus pour moi — m'a apporté une vision concrète des enjeux de synchronisation temporelle dans les systèmes industriels embarqués. Travailler en autonomie dans un environnement de production réel a renforcé ma rigueur et ma capacité à rédiger une documentation claire à destination des utilisateurs.

Rapport de stage

Rapport de Stage — FEBUS OPTICS
Annaëlle Champiau · BTS SIO SLAM · 2025 · PDF

Compétences BTS SIO validées

B2.1 Développement d'un module applicatif (Perl / Webmin)
B2.3 Gestion des services et fichiers de configuration Linux
A1.4 Conduite du projet en autonomie avec planning hebdomadaire
A1.5 Mise à disposition du module, documentation utilisateur
A1.1 Gestion du patrimoine informatique et des serveurs Linux
C3.3 Sécurisation de l'interface Webmin (HTTPS, droits utilisateur)
Stage précédent
Voir les compétences
Stage suivant
ARGITIK