Bienvenue dans ce projet Python SysAdmin Training !
Ce dĂ©pĂŽt propose un parcours progressif et pratique pour apprendre Python Ă travers des cas concrets dâadministration systĂšme. Pas de thĂ©orie abstraite ici : chaque TP vous met dans la peau dâun admin qui cherche Ă automatiser une tĂąche fastidieuse, surveiller un systĂšme, appeler une API ou gĂ©nĂ©rer un rapport.
Câest un guide pour monter en compĂ©tences par la pratique, avec des exemples issus du quotidien des administrateurs systĂšmes.
- đ Apprendre les bases du langage Python dans un contexte sysadmin.
- âïž Automatiser des tĂąches Ă faible valeur ajoutĂ©e (nettoyage de fichiers, surveillance, backupâŠ).
- đ Ăcrire des scripts robustes, testables et rĂ©utilisables.
- đ Interagir avec des APIs, manipuler des fichiers de configuration (YAML, JSON), gĂ©rer des processus Ă distance.
- đ§Ș Tester automatiquement vos scripts avec
pytestettestinfra.
Le projet est composé de deux parties :
- formation-base : Concepts fondamentaux de Python.
- automatisation : Exercices pratiques pour appliquer ces concepts dans un contexte dâadministration systĂšme.
TP Disponibles :
00-Intro-Pythonâ Introduction Ă Python, syntaxe de base, variables, types de donnĂ©es.01-Structures-Collectionsâ Structures de contrĂŽle (if/else, boucles) et collections (listes, tuples, dictionnaires).02-Fonctionsâ CrĂ©ation de fonctions, paramĂštres, valeurs par dĂ©faut, lambdas, rĂ©cursion.
TP Disponibles :
01-Nmapâ Utilisation de Nmap pour scanner des rĂ©seaux.
Idées de TP :
02-Backupâ Script de sauvegarde de fichiers.03-Log-Parserâ Analyse de fichiers log pour extraire des informations pertinentes.04-API-Clientâ Client pour interagir avec une API REST (par exemple, rĂ©cupĂ©rer des donnĂ©es mĂ©tĂ©o).- ...
- Un environnement Linux ou Incus (containers LXD-compatible avec systemd).
- Python 3.10 ou supérieur.
- Les outils suivants installés :
pipx install pytest
pipx inject pytest pytest-testinfraUne configuration Incus est recommandée pour certains TP. Voir ci-dessous.
Pour isoler proprement chaque TP dans un conteneur Linux, tu peux utiliser Incus. Cf. guide complet dâinstallation ici : https://blog.stephane-robert.info/docs/homelab/incus/
- Cloner le dépÎt :
git clone https://github.com/stephrobert/python-training.git
cd python-sysadmin-training- Choisissez un TP et suivez les consignes dans le fichier
README.mddu dossier correspondant. - Les tests se lancent avec :
pytest tests/Certains TP peuvent inclure des fichiers de simulation (
log.txt,users.csv, etc.) dans un dossierdata/.
Je continuerai à enrichir ce dépÎt avec de nouveaux TP, inspirés de cas réels, et des corrections issues des retours de la communauté.
git pull origin mainVous avez une idée de TP ? Un script utile à partager ? Une amélioration à proposer ?
- Ouvrez une issue pour discuter du sujet.
- Proposez une pull request avec un nouveau dossier TP complet :
README.md,main.py,tests/,data/.
Si ce travail vous aide ou vous inspire, vous pouvez me soutenir ici :
- Auteur : Stéphane Robert (2025)
- Licence : Creative Commons BY-SA 4.0