Bloc d'activités : Réalisation de la solution

Intégrer des briques logicielles dans un ensemble cohérent

Entreprise : ONCFS

Client : idem

Projet : Master poste de travail

Dates/Durée : printemps 2014/ 20 jours

Réalisation : Intégration de la solution Microsoft LTI pour déployer un poste de travail aux normes de la DSI (MDT, WDS, WinPE etc)

Source documentaire :

https://docs.microsoft.com/fr-fr/windows/deployment/deploy-windows-mdt/get-started-with-the-microsoft-deployment-toolkit

https://docs.microsoft.com/fr-fr/mem/configmgr/mdt/use-the-mdt#ManagingLTIDeploymentsintheDeploymentWorkBench

La réalisation majeure

Définition du projet ou de la réalisation

Le projet a eu pour but d'intégrer une solution de déploiement industrialisé du poste de travail à l'ONCFS dans l'infrastructure Active Directory existante.

Objectifs, contexte, enjeu, risques, opportunités

Lors de mon arrivée à l'ONCFS (Avril 2013) en tant que correspondant informatique, les master (modèles de poste de travail) étaient construits à partir d'images disque TrueBACKUP.

Ce type de déploiement obligeait à refaire, à chaque fois qu'un nouveau :

  • matériel,

  • système d'exploitation,

  • logiciel,

... arrivait dans l'entreprise, intégralement l'image de déploiement et surtout de devoir stocker une quantité non négligeable d'images disque.

Ayant travailler chez EDF sur ce type de solution (SCCM) en tant qu'ingénieur système j'ai pu apporter mon expérience concernant l'industrialisation du déploiement d'un poste de travail Microsoft, respectant des normes d'entreprise.

L'objectif était donc de proposer une solution complète de déploiement du poste de travail :

  • pérenne et supportée par Microsoft,

  • permettant de gérer les numéros de version :

    • des pilotes matériels,

    • des systèmes d'exploitation,

    • du socle logiciel.

  • assurant l'intégration du poste de travail dans le mono-domaine Active Directory national existant (en arrivant dans ma région je devais également migrer toutes les machines existantes dans le domaine Active Directory ONCFS.INTRA),

  • pouvant être déployée sur tout le territoire national,

  • facilement gérable et accessible pour les 10 correspondants informatique, le tout avec le moindre effort,

  • s'appuyant sur un référentiel unique et centralisé sur un site stratégique.

Étapes

Pour intégrer cette plate-forme de déploiement d'un poste de travail sous Microsoft Windows il m'a fallu :

  • Me re-documenter sur internet sur l'architecture système et réseau nécessaire à la solution LTI(Lite Touch Installation), version légère de SCCM,

  • Prendre en compte le système d'exploitation et le socle logiciels existants à l'ONCFS puis formaliser le choix de ces derniers en rédigeant une documentation validée par notre hiérarchie,

  • Valider la faisabilité d'intégration de la solution dans l'ensemble cohérent que constitue l'architecture système et réseau en production (Active Directory ONCFS.INTRA, serveurs de fichiers Microsoft Windows 2008 R2 etc.),

  • Réaliser un POC sur la faisabilité sans passer par une infrastructure SCCM complète (coûteuse et complexe) : utilisation de la solution LTI,

  • Proposer et présenter la solution à mon supérieur hiérarchique (Daniel RAPP) et mes collègues correspondants informatique,

  • Déployer une première plate-forme de déploiement sur ma région avec les briques logicielles choisies :

    - Serveur WDS, DHCP PXE,

    - Serveur de fichiers Microsoft ou GNU/Linux servant à héberger le point de déploiement (DeploymentShare),

    - Station de travail pour fabriquer le point de déploiement (DeploymentShare) : MDT (Microsoft Deployment ToolKit) , Windows ADK (Windows Assessment and Deployment Kit),

  • Valider la solution en déployant un lot pilote de la commande annuelle d'ordinateurs fixes et portables de marque HP de ma région : 50 machines déployées en 2 jours,

  • Créer et centraliser le point de déploiement (DeploymentShare) de référence sur notre site central (Saint-Benoît -78-) et le synchroniser avec les serveurs et NAS de provinces,

  • Former mes collègues au déploiement et à l'utilisation de cette nouvelle brique logicielle.

Mes actions

J'ai réalisé personnellement toutes les étapes mentionnées ci-dessus tout en faisant valider l'ensemble des procédures par ma hiérarchie (Daniel RAPP, Thierry Thomas).

Acteurs et interactions au sein du projet

J'ai conduit cette mission essentiellement seul, hormis les phases de validation avec mes responsables.

Enfin j'ai dû former mes collègues à cette nouvelle solution.

Résultats (pour moi, pour l'entreprise)

Cette réalisation m'a permis de faire une révision de mes connaissances sur les méthodes de déploiement supportées par Microsoft.

Au niveau de mon établissement public cela a nous permis de gagner :

  • en qualité,

  • standardisation,

  • rapidité,

... concernant le déploiement d'un poste de travail.

Lendemains du projet

A la suite de ce projet j'ai du former 2 de mes collègues afin qu'ils maintiennent et puissent faire évoluer cette solution en parfaite autonomie.

Cette méthode de déploiement d'un poste de travail a été de nouveau choisi pour être déployée sur les sites éligibles de l'OFB.

Remarque :L'établissement avec lequel l'ONCFS a fusionné, l'AFB, utilisait encore CloneZilla.

Mon regard critique sur le projet ou la réalisation

Cette méthode permet un gain de temps considérable et surtout permet d'industrialiser le déploiement d'un poste de travail au sein de notre établissement publique.

La compétence : autocritique et évolution

Mon niveau de maîtrise de la compétence

J'ai un niveau expert dans la compétence d'intégration de briques logiciels dans un ensemble cohérent.

Place, importance, priorité de cette compétence dans mon profil d'Expert en Ingénierie ou dans mon métier actuel

Actuellement cette compétence d'intégrateur de solution logiciel me sert sur la plupart des projets que je dois mener, elle est donc mise au premier plan.

Dernièrement je viens de finir par exemple l'intégration d'une solution de gestion des accès sécurisés pour l'OFB, BeyondTrust PRA (Privileg Remote Access) et me prépare à lancer l'intégration d'une solution de reverse proxy à haute disponibilité sur un périmètre de 4 Datacenter (HAProxy Enterprise - ALOHA).

Mon évolution

Je me tourne de plus en plus vers l'utilisation d'outil d'automatisation de déploiement de système d'exploitation style Ansible, Terraform, norme Cloud-Init, et dernièrement Rundeck.

Place de la compétence dans mon projet personnel

Souvent nommé comme chef de projet sur des solutions système à intégrer dans notre infrastructure, cette compétence tient une place majeur dans mon projet personnel.

Niveau que je souhaite atteindre dans cette compétence à moyen terme

Bien que je pratique régulièrement l'intégration de solutions, plus ou moins importantes, dans des infrastructures aussi diverses que variées  : chaque nouvelle expérience me permet surtout d’enrichir mes connaissances dans des domaines ciblés mais aussi me permet d'être beaucoup plus précis dans l'estimation des délais pour fournir des livrables.

Formation ou autoformation en cours ou à venir, sur cette compétence

Sur cette compétence je me forme au fil de l'eau mais souvent dans l'urgence car les projets dans les environnements de production se décident au jour le jour, sans cachier des charges bien précis ...

Développer des scripts d'automatisation de configuration

Entreprise : ONCFS

Client : idem

Projet : Automatisation Active Directory

Dates/Durée : été 2013 / 15 jours

Réalisation : Développement d'un script de connexion et de configuration du poste de travail (loginScript)

Source documentaire :

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn789190(v=ws.11)

https://docs.microsoft.com/fr-fr/windows/deployment/windows-deployment-scenarios-and-tools

https://docs.microsoft.com/fr-fr/office/vba/outlook/how-to/using-visual-basic-to-customize-outlook-forms/using-visual-basic-scripting-edition

La réalisation majeure

Définition du projet ou de la réalisation

Le projet a eu pour but de mettre en place un script de connexion (loginScript), normalisé et structuré, des postes de travail à l'ONCFS dans l'infrastructure mono-domaine Active Directory existante (ONCFS.INTRA).

Objectifs, contexte, enjeu, risques, opportunités

Lors de mon arrivée à l'ONCFS (Avril 2013) en tant que correspondant informatique, j'ai constaté que l'infrastructure Active Directory existante avait certes quelques stratégies systèmes (GPO) mais ces dernières étaient éparpillées et sans cohérence les unes avec les autres.

De plus chaque intervention de prestataire donnait lieu à la mise en place d'un script supplémentaire en VBS (Visual Basic Scriptin), BATCH ou PowserShell intégré à une GPO.

J'ai donc décidé de mutualiser ces scripts pour construire un script de connexion normé et structuré et ainsi définir un cadre pour les interventions futures de nos prestataires.

Le contexte était celui d'une migration de toutes les machines existantes (Windows XP et 7) dans le mono-domaine Active Directory ONCFS.INTRA, de ce fait le script de connexion devait prendre en compte l'existant.

Le risque de la mise en place d'un tel code était surtout de perdre les autres correspondants informatique de l'équipe : la majorité ne savant pas faire du développement ou du « scripting ».

Ce script devait donc être :

  • Maintenable,

  • Lisible,

  • Simple,

  • Modulaire,

  • Adapté à l'arrivée future de systèmes de stockage locaux qui seraient déployés sur les 280 sites de l'ONCFS (projet NAS),

  • En adéquation avec les serveurs de fichiers déjà en production,

  • Complémentaire aux stratégies de groupe chargées de monter les points de partages des utilisateurs en fonctions de leur site d'affectation mais aussi pour assurer la configuration de l'ordinateur de l'utilisateur,

  • Utilisable pour permettre l’installation automatisé et à distance de logiciels autorisés.

Étapes

Pour développer ce script j'ai donc fait appelle à la technologie la plus stable et abondante en littérature à cette époque (2013) : le Visual Basic Scripting (VBS), le PowerShell étant intéressant mais complètement inconnu pour mes collègues.

Pour élaborer ce script j'ai choisi une architecture applicative modulaire :

Pour construire le script j'ai du :

  • Auditer et analyser le code des scripts existants appelés par les GPO (partie « Utilisateur » et « Machine »),

  • Structurer donc découper le script en plusieurs parties en développant :

    • un script d'appel des trois autres scripts : login.swf (ou startup.swf),

    • un script de définitions des variables et constantes globales du script : definitions.vbs,

    • un script type boîte à outils contenant un ensemble de fonctions unitaires et réutilisables : fonctions.vbs,

    • un script maître (démarrage) qui déclenche les actions sur le poste de travail (soit avant la connexion d'un utilisateur : startup.swf, soit une fois ce dernier connecté dans son contexte utilisateur : login.swf) : demarrage.vbs,

  • Écrire les 4 scripts,

  • Effectuer des tests unitaires de chaque fonctionnalités sur des OU (Organisational Unit) de test isolées (contrairement à des grandes entreprises l'ONCFS ne disposait pas de domaine de test, recette etc.),

  • Mettre en production le script sur un site pilote puis une région entière,

  • Prendre connaissance du retour utilisateur, des performances, du REX (Retour d'EXpérience) des collègues,

  • Valider au niveau national et passer en production définitive sur l'ensemble du domaine Active Directory (OU "Utilisateurs" et OU "Ordinateurs").

Note : les scripts présentés en Annexe : Code source login script sont des versions allégés dont j'ai volontairement expurgé les informations sensibles.

Mes actions

J'ai réalisé personnellement toutes les étapes mentionnées ci-dessus.

Acteurs et interactions au sein du projet

J'ai du expliquer les changements et apports de ce script de connexion à tous mes collègues correspondants informatiques et aux membres de l'équipe infrastructure.

Résultats (pour moi, pour l'entreprise)

La mise en production s'est bien déroulée. Les résultats furent ceux escomptés, et cette réalisation nous a permis de remplir les objectifs fixés en début de projet.

Lendemains du projet

Une fois le script passé en production nous avons eu quelques remontées concernant la non application de ce dernier sur quelques postes de travail du domaine. Cela m'a amené à enrichir le script de démarrage (startup.swf) pour avoir plus de visibilité sur le déroulement d'une connexion au domaine.

En conséquence j'ai du mettre en place une GPO supplémentaire pour optimiser les temps de connexion, 90% de nos sites étaient connectés avec des liens ADSL asymétrique ..., et ainsi améliorer l’expérience utilisateur.

Mon regard critique sur le projet ou la réalisation

Je me suis aperçu que certaines technologies Microsoft (partage de fichiers CIFS, partage réseau, connexion à un domaine centralisé ...) étaient de moins en moins adapté à des liens lents malgré les optimisations proposées par l'éditeur.

Sur des sites où les contrôleurs de domaine sont sur des liens locaux (LAN), il n'y a aucun soucis ... mais dès que les stations de travail clientes (ou un NAS) doivent parcourir un lien WAN (souvent lent) pour solliciter la solution d'authentification intégré à Active Directory (KDC, TGT etc ) ... les dysfonctionnements surgissent (fragmentation des paquets Kerberos vs MTU, détection de lien lent des GPO etc ...).

La compétence : autocritique et évolution

Mon niveau de maîtrise de la compétence

Ayant une formation initiale de développeur (BAC+4) ainsi qu'une longue expérience de la maintenance et de l'exploitation de script de connexion permettant d'automatiser la configuration d'un poste de travail, j'ai pu confirmer mon niveau d'expert pour cette compétence.

Place, importance, priorité de cette compétence dans mon profil d'Expert en Ingénierie ou dans mon métier actuel

Cette compétence me sert toujours dans mon métier actuel. En effet en tant qu’architecte système je dois parfois assurer le support niveau 3 et développer des scripts visant à assurer l’automatisation de la configuration de station de travail , de serveurs, de commutateurs ...

Mon évolution

Cette expérience m'a permis de compiler toutes les expériences passées dans la création de script de connexion pour des infrastructures Active Directory (Windows 2000 à 2016) et aussi de choisir le type d'automatisation adéquate en fonction de la situation rencontré (équilibre entre code scripts vs GPO vs connaissance de mes collègues).

Place de la compétence dans mon projet personnel

Cette compétence tient une place significative dans mon projet personnel dans le sens ou elle me sert épisodiquement, notamment dans le cadre de demande urgente de configuration des hôtes (serveurs ou station de travail)

Niveau que je souhaite atteindre dans cette compétence à moyen terme

Bien qu'étant expert dans cette compétence je découvre toujours des nouvelles technologies qui me permettent d'augmenter mon niveau dans cette compétence.

Formation ou autoformation en cours ou à venir, sur cette compétence

Ayant échangé avec mon référent de stage VAE sur les méthodes d'automatisation de la configuration, je me suis remis à une veille technologique concernant d'autres outils de gestion de la configuration en général (Cloud-init, Terraform, Kubernetes) ces derniers permettant de déployer encore plus vite des serveurs voir des infrastructures complètes (IaC).