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
pytest
ettestinfra
.
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-Fonctions
— Création de fonctions, paramètres, valeurs par défaut, lambdas, récursion.
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-testinfra
Une 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.md
du 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 main
Vous 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