Ce projet personnel consiste en la gestion et la maintenance d'une infrastructure de serveurs de jeux, ainsi que le développement d'outils en Python pour automatiser les tâches d'administration et la surveillance système.
En tant que passionné de jeux vidéo et d'informatique, j'ai développé et maintenu une infrastructure de serveurs pour différents jeux. Face aux défis de gestion manuelle, j'ai décidé de créer des scripts Python pour automatiser les tâches répétitives et améliorer la qualité de service.
Les principaux objectifs étaient :
Ensemble de scripts Python permettant de démarrer, arrêter, mettre à jour et sauvegarder les serveurs selon un calendrier prédéfini ou en réponse à des événements spécifiques.
# Exemple simplifié de script d'automatisation
import subprocess
import logging
import schedule
import time
def backup_server(server_id):
logging.info(f"Starting backup for server {server_id}")
try:
subprocess.run(["./backup.sh", server_id], check=True)
logging.info(f"Backup completed for server {server_id}")
except Exception as e:
logging.error(f"Backup failed: {e}")
# Planification des sauvegardes
schedule.every().day.at("03:00").do(backup_server, "minecraft-1")
schedule.every().day.at("04:00").do(backup_server, "factorio-1")
while True:
schedule.run_pending()
time.sleep(60)
API REST développée avec Flask permettant de contrôler les serveurs à distance, de consulter les statistiques et de gérer les utilisateurs.
Implémentation de Prometheus pour collecter les métriques système et Grafana pour les visualiser. Des alertes sont configurées pour notifier en cas de problèmes.
Scripts Python permettant d'analyser les fichiers logs des serveurs pour détecter les erreurs, suivre l'activité des joueurs et générer des rapports périodiques.
Maîtrise de Python pour des scripts d'automatisation et le développement d'API.
Configuration et maintenance de serveurs Linux, gestion des services système.
Mise en place de solutions de surveillance avec Prometheus et Grafana.
Configuration réseau, gestion de ports, sécurisation des accès.
Ce projet personnel m'a permis de développer des compétences pratiques en administration système Linux et en programmation Python, tout en résolvant des problèmes concrets de gestion de serveurs.
Les principaux résultats obtenus sont :
Les difficultés rencontrées, notamment les problèmes de performance et les conflits entre services, m'ont permis d'améliorer mes compétences en dépannage et optimisation système. Ce projet continue d'évoluer avec l'intégration de nouvelles fonctionnalités et l'adoption de meilleures pratiques.