Skip to content

stephrobert/python-training

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python SysAdmin Training

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.


🎯 Objectifs

  • 🐍 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 et testinfra.

📚 Structure du Projet

Le projet est composé de deux parties :

  1. formation-base : Concepts fondamentaux de Python.
  2. automatisation : Exercices pratiques pour appliquer ces concepts dans un contexte d’administration systùme.

Formation de base

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.

Automatisation

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).
  • ...

🔧 PrĂ©requis

  • 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.


Installation d'Incus (facultatif mais recommandé)

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/


🚀 DĂ©marrage rapide

  1. Cloner le dépÎt :
git clone https://github.com/stephrobert/python-training.git
cd python-sysadmin-training
  1. Choisissez un TP et suivez les consignes dans le fichier README.md du dossier correspondant.
  2. Les tests se lancent avec :
pytest tests/

Certains TP peuvent inclure des fichiers de simulation (log.txt, users.csv, etc.) dans un dossier data/.


🔄 Mise Ă  jour du dĂ©pĂŽt

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

đŸ€ Contribuer

Vous avez une idée de TP ? Un script utile à partager ? Une amélioration à proposer ?

  1. Ouvrez une issue pour discuter du sujet.
  2. Proposez une pull request avec un nouveau dossier TP complet : README.md, main.py, tests/, data/.

☕ Me soutenir

Si ce travail vous aide ou vous inspire, vous pouvez me soutenir ici :

Ko-fi


📄 Licence

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors

Languages