Scripting
Contexte
Le scripting est une technique de programmation qui consiste à écrire des scripts, c’est-à-dire des programmes informatiques destinés à automatiser des tâches. Dans le domaine de l’administration système, le scripting permet de faciliter la gestion de l’infrastructure informatique en automatisant certaines opérations fastidieuses ou récurrentes, comme la création de comptes utilisateurs, le déploiement de logiciels ou la configuration de serveurs.
Au cours de mes études en informatique et de mon alternance en entreprise, j’ai eu l’occasion de développer mes compétences avec plusieurs langages, tels que Powershell, Python et Bash. J’ai notamment utilisé cette compétence sur des projets personnels pour automatiser certaines tâches, comme l’installation de serveurs avec Bash ou l’automatisation de tâches d’administration Windows avec Powershell.
Des exemples concrets
- Création de scripts d’automatisation de création de comptes utilisateurs :
Lors de mon alternance en entreprise, j’ai été chargé de mettre en place un processus d’intégration des nouveaux arrivants au sein de l’organisation. L’une des tâches qui m’a été confiée consistait à créer les comptes utilisateurs des nouveaux employés sur l’Active Directory local et sur la plateforme de messagerie en ligne (Office365).
Pour automatiser cette tâche fastidieuse et répétitive, j’ai décidé d’utiliser PowerShell. J’ai créé un script qui prenait en entrée une liste d’employés et qui effectuait les opérations suivantes :
- Création d’une adresse e-mail pour chaque employé via l’API Office365.
- Création d’un compte utilisateur sur l’Active Directory local avec les informations de l’employé (nom, prénom, intitulé du poste, bureau).
- Attribution des autorisations et des groupes de sécurité appropriés au compte utilisateur.
Grâce à ce script, j’ai réussi à automatiser complètement la création de comptes utilisateurs. Cela a permis non seulement de gagner du temps et de réduire les erreurs humaines, mais a également contribué à améliorer la qualité de service pour les nouveaux arrivants.
- Automatisation d’opérations d’administration docker.
En tant qu’administrateur système, j’ai souvent la tâche de gérer des serveurs et des applications dans des environnements distribués. Pour faciliter cette gestion, j’ai choisi d’utiliser Docker, un outil de conteneurisation qui permet de déployer des applications dans des conteneurs isolés et portables.
Afin de faciliter la gestion de mes conteneurs Docker, j’ai décidé d’utiliser Python. J’ai donc créé un script qui automatise les tâches suivantes :
- Lancement de mes conteneurs Docker à partir de leurs images respectives.
- Mise à jour automatique des images des conteneurs à chaque démarrage, afin de garantir que les applications tournent sur la dernière version stable.
Ce script me permet de gérer facilement mes conteneurs Docker et de m’assurer que mes applications tournent sur la version la plus à jour. Cette automatisation m’a non seulement permis de gagner du temps et de réduire les erreurs humaines, mais a également contribué à améliorer la qualité de service de mes applications.
J’ai également utilisé mes compétences pour automatiser certaines tâches sur mon serveur personnel, comme l’installation de nouveaux services ou la configuration de serveurs. J’ai notamment créé des scripts en Python pour effectuer des tâches avancées et des scripts en Bash pour les tâches courantes. Cette expérience m’a permis de mettre en pratique mes connaissances et de développer mes compétences en matière d’administration système.
En savoir plus sur mon serveur Homelab.
Auto-critique
Actuellement, je considère avoir atteint un niveau de maîtrise avancé en scripting grâce à mes années d’études en informatique et mon alternance en entreprise. J’ai eu l’occasion de développer mes compétences avec différents langages tels que Powershell, Python et Bash, et j’ai mis cette compétence en œuvre sur des projets professionnels et personnels.
Cependant, je suis conscient qu’il y a encore une marge de progression pour moi dans cette compétence. En effet, chaque langage de scripting a ses particularités et il y a toujours de nouvelles fonctionnalités à découvrir. De plus, la technologie évolue rapidement et il est important de rester à jour pour pouvoir utiliser les dernières avancées dans mon travail.
Malgré cela, je pense que cette compétence est transposable à de nombreuses situations et peut être utile dans de nombreux contextes professionnels. En tant qu’administrateur système, cela me permet d’automatiser des tâches fastidieuses ou récurrentes et de gagner du temps, ce qui est essentiel dans mon métier. Cette compétence est donc une priorité pour moi et je m’efforce de la maintenir à un niveau avancé.
En tant qu’Expert en SI, je considère que le scripting est une compétence cruciale pour pouvoir gérer efficacement des infrastructures informatiques.
Ma vitesse d’acquisition de cette compétence a été assez rapide grâce à mes années d’études en informatique et à mon alternance en entreprise, qui m’ont permis de mettre en pratique mes connaissances de manière concrète. J’ai également consacré du temps à des projets personnels qui m’ont permis de développer mes compétences de manière autonome et de découvrir de nouvelles technologies.
Aujourd’hui, je peux donner les conseils suivants pour ceux qui souhaitent développer leur compétence en scripting :
- S’entraîner régulièrement en résolvant des problèmes de son quotidien (domotique, automatiser des tâches répétitives)
- Se tenir informé des dernières avancées technologiques et des nouvelles possibilités offertes par les différents langages.
- Ne pas hésiter à demander de l’aide ou à échanger avec d’autres professionnels pour partager son expérience et ses connaissances.
Je souhaite continuer à développer mes compétences et à me tenir informé des dernières avancées technologiques dans ce domaine. J’aimerais également avoir l’opportunité de mettre en œuvre cette compétence sur des projets de grande envergure et de contribuer à l’amélioration de l’efficacité des infrastructures informatiques.
Le scripting constitue une compétence de base pour se former dans le domaine du Devops, qui vise à améliorer la collaboration entre les équipes de développement et d’exploitation et à accélérer le déploiement et la livraison de logiciels. En tant qu’administrateur système, il me permet d’automatiser diverses tâches d’administration et de configuration, ce qui est essentiel pour mettre en place des processus de déploiement et de livraison efficaces.
Par exemple, en utilisant des scripts en Python ou en Powershell, je peux automatiser la création et la gestion de serveurs dans le cloud, la configuration de serveurs et d’applications, la gestion de containers Docker, etc. Cette automatisation permet de gagner du temps et de réduire les erreurs humaines, ce qui est crucial pour assurer la qualité et la disponibilité des logiciels.
De plus, le scripting me permet d’écrire des tests et des outils de monitoring pour surveiller les performances et la disponibilité de mes infrastructures et de mes applications. Cela me permet de détecter rapidement les problèmes et de les résoudre de manière efficace, ce qui contribue à améliorer la qualité de service de mes logiciels.
Conclusion
En résumé, la compétence en scripting est indispensable pour se former dans le domaine du DevOps et pour mettre en place des processus de déploiement et de livraison efficaces. Je suis capable d’automatiser diverses tâches d’administration et de configuration, de surveiller les performances et la disponibilité de mes infrastructures et de mettre en place des outils de monitoring pour détecter rapidement les problèmes.
En ce qui concerne mes formations ou autoformations en cours ou à venir, j’ai l’intention de suivre des cours en ligne pour approfondir mes connaissances en Python et découvrir de nouvelles fonctionnalités de ce langage. Je pense également à suivre des formations sur les outils de gestion de containers Docker pour pouvoir automatiser encore davantage la gestion de mes infrastructures.