Lors de la première année du BTS SIO, nous avons eu l'opportunité d'acquérir de l'expérience professionnelle par le biais d'un stage. Sur cette page vous retrouverez les différentes missions que j'ai pu faire dans ce stage à la Communauté de Communes Vendée Grand Littoral, dans la Direction commune des systèmes d'information.
Les images peuvent être vue en pleine résolution avec Clic droit > Ouvrir l'image dans un nouvel onglet, ou en les téléchargeant.
J’ai développé et optimisé un script Python qui synchronise automatiquement les comptes utilisateurs entre l’Active Directory (AD) et le serveur de messagerie Zimbra. Grâce à RunDeck (puis Windmill, après migration plus tard dans mon stage), ce script s'exécute toutes les 15 minutes, détecte les changements de groupes, crée les boîtes mail, monte automatiquement les boîtes partagées et génère des signatures ainsi que des avatars d’utilisateurs. J’ai corrigé plusieurs bugs liés à la librairie zimsoap et restructuré le code pour une meilleure fiabilité, notamment en mettant en place un cache JSON local pour éviter de surcharger l’AD.
Outils utilisés : Python 3.11, zimsoap, RunDeck, Windmill, LDAP Account Manager, Debian 12, Zimbra, NextCloud.
#C1.1 – Gestion du patrimoine informatique
#C1.2 – Réponse aux incidents
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition d’un service
#C1.6 – Développement professionnel
J’ai mis en place un script Python avec Flask (ensuite migré sur Windmill avec un trigger POST) qui automatise la création de comptes utilisateurs dans l’AD suite à la validation d’un formulaire dans GLPI. Une fois validé par un technicien, les données sont envoyées via webhook, et le script crée le compte avec toutes ses informations (UPN, nom, email, poste, service, manager, etc.). J’ai géré les contraintes LDAP comme le filtrage des caractères spéciaux et configuré les habilitations en fonction des services de rattachement.
Outils Utilisés : GLPI, Flask, Python 3.11, LDAP Account Manager, Samba.
#C1.1 – Gestion du patrimoine informatique
#C1.5 – Mise à disposition des utilisateurs d’un service
#C1.6 – Organisation de son développement professionnel
J’ai développé des thèmes CSS personnalisés pour les outils LimeSurvey et GRR afin d’améliorer leur lisibilité et de les adapter à la charte graphique de Vendée Grand Littoral. J’ai aussi remplacé les logos, ajusté les couleurs et consulté le pôle communication pour validation. Les thèmes ont ensuite été déployés comme thèmes par défaut. Un tutoriel d'utilisation a été rédigé et transmis aux utilisateurs.
Outils Utilisés : CSS, LimeSurvey, GRR, Nextcloud, SSH, Debian.
#C1.3 – Développement de la présence en ligne
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition des utilisateurs d’un service
J’ai migré tous les scripts de RunDeck vers Windmill et conçu plusieurs workflows déclenchables via API REST. Ces workflows automatisent la création de comptes, signatures Zimbra, octroi de licences mobiles et synchronisation AD. Grâce à ce système, une simple requête HTTP déclenche toute la chaîne de création de compte sans intervention manuelle.
Outils Utilisés : Windmill, Python, JSON, API REST, LDAP.
#C1.1 – Gestion du patrimoine informatique
#C1.2 – Réponse aux incidents et aux demandes d’assistance
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition des utilisateurs d’un service
#C1.6 – Organisation de son développement professionnel
Pour simplifier l’utilisation des scripts Windmill, j’ai développé une application web low-code intégrée à Windmill. L’interface permet de lancer les workflows et scripts en quelques clics. J’ai même ajouté un mode sombre via JavaScript malgré les limitations de Windmill en version gratuite. Cette app a ensuite été présentée aux techniciens, avec prise en compte de leurs retours pour améliorer l’UX.
Outils Utilisés : Windmill, JavaScript, CSS
#C1.2 – Réponse aux incidents et aux demandes d’assistance
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition des utilisateurs d’un service
Afin de stocker de manière fiable les données entre les exécutions de scripts Windmill, j’ai mis en place une base MariaDB. Elle permet de sauvegarder des informations importantes (ex. : comptes déjà traités, cache des groupes, etc...) sans dépendre des “states” peu stables de Windmill et qui diffèrent selon les triggers.
Outils Utilisés : MariaDB, DBeaver, Windmill.
#C1.1 – Gestion du patrimoine informatique
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition des utilisateurs d’un service
Pour préparer l’arrivée d’un système de scan direct vers les dossiers personnels des agents, j’ai créé un workflow Windmill qui récupère les utilisateurs AD, crée un dossier personnel sur un serveur SMB TrueNAS, et applique les droits ACL automatiquement via l’API TrueNAS.
Outils Utilisés : TrueNAS, SMB, Windmill, API JSON RPC, ACL, AD, Python.
#C1.1 – Gestion du patrimoine informatique
#C1.4 – Travail en mode projet
#C1.5 – Mise à disposition des utilisateurs d’un service
En vue de permettre l’envoi automatique de documents scannés vers les espaces personnels Nextcloud des agents, j’ai entamé une phase de recherche autour de l’authentification OAuth et des jetons d’accès, dans le but d’interagir avec les comptes utilisateurs de manière sécurisée à l'aide d'un script Python.
#C1.6 – Organisation de son développement professionnel
J’ai documenté toutes mes réalisations autour de Windmill dans la base de connaissances interne et animé une formation complète auprès des techniciens. Cela comprenait l’utilisation des formulaires GLPI, des workflows, de l’app Windmill et des scripts automatisés via l'application Web que j'ai mise en place.
#C1.2 – Réponse aux incidents et aux demandes d’assistance
#C1.5 – Mise à disposition des utilisateurs d’un service
#C1.6 – Organisation de son développement professionnel
Pour aller plus loin, vous pouvez aussi retrouver mes rapports de stage complets hebdomadaires sur Google Drive