https://github.com/stephrobert/python-training
Une formation Python pour les Admin Sys
https://github.com/stephrobert/python-training
formation learning python python3
Last synced: 11 months ago
JSON representation
Une formation Python pour les Admin Sys
- Host: GitHub
- URL: https://github.com/stephrobert/python-training
- Owner: stephrobert
- License: cc-by-sa-4.0
- Created: 2025-07-07T08:00:25.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-20T10:26:28.000Z (11 months ago)
- Last Synced: 2025-07-20T11:25:30.132Z (11 months ago)
- Topics: formation, learning, python, python3
- Language: Python
- Homepage: https://blog.stephane-robert.info/docs/developper/programmation/python/
- Size: 49.8 KB
- Stars: 19
- Watchers: 0
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# 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`](./00-formation-base/00-Intro-Python) — Introduction à Python, syntaxe de base,
variables, types de données.
* [`01-Structures-Collections`](./00-formation-base/01-Structures-Collections) — Structures de contrôle (if/else, boucles) et collections (listes, tuples, dictionnaires).
* [`02-Fonctions`](./00-formation-base/02-Fonctions) — Création de fonctions, paramètres, valeurs
par défaut, lambdas, récursion.
### Automatisation
**TP Disponibles :**
* [`01-Nmap`](./01-automatisation/01-Nmap) — Utilisation de Nmap pour scanner des réseaux.
**Idées de TP** :
* [`02-Backup`](./01-automatisation/01-Backup) — Script de sauvegarde de fichiers.
* [`03-Log-Parser`](./01-automatisation/02-Log-Parser) — Analyse de fichiers log pour extraire des
informations pertinentes.
* [`04-API-Client`](./01-automatisation/03-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 :
```bash
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/](https://blog.stephane-robert.info/docs/homelab/incus/)
---
## 🚀 Démarrage rapide
1. **Cloner le dépôt :**
```bash
git clone https://github.com/stephrobert/python-training.git
cd python-sysadmin-training
```
2. **Choisissez un TP et suivez les consignes dans le fichier `README.md` du
dossier correspondant.**
3. **Les tests se lancent avec :**
```bash
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é.
```bash
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 :
[](https://ko-fi.com/stephanerobert89902)
---
## 📄 Licence
* **Auteur** : Stéphane Robert (2025)
* **Licence** : [Creative Commons BY-SA
4.0](https://creativecommons.org/licenses/by-sa/4.0/)