RousselTMLEARNING

TP · Administration Linux : de la découverte à l'expertise

TP : Créer et piloter un service systemd

Ce que vous allez apprendre dans ce TP
  • Gérer des paquets et des services
  • Écrire une unité systemd durcie
  • Planifier avec un timer

Introduction #

Ce que vous allez apprendre dans cette section
  • Gérer des paquets et des services
  • Écrire une unité systemd durcie
  • Planifier avec un timer

Contexte. Une petite application interne est lancée à la main dans un terminal et s'arrête à chaque déconnexion. Vous en faites un vrai service, supervisé et durci.

Prérequis : une machine virtuelle Ubuntu 24.04 jetable (Multipass, Vagrant ou cloud) avec un compte sudo  ·  Durée estimée : 45 min

Un service qui démarre au boot, redémarre seul et est contrôlé chaque minute.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Installer et piloter nginx

    Pourquoi ? Un paquet de distribution fournit déjà son unité systemd : on apprend les commandes sur un cas simple.

    Mettez à jour l'index, installez nginx, vérifiez qu'il est actif et activé au démarrage, et testez-le avec curl.
  2. 2. Préparer l'application

    Pourquoi ? L'application tourne sous un compte de service dédié, jamais root.

    Créez le compte app (s'il n'existe pas) et un site statique dans /srv/app/www servi par python3 -m http.server sur le port 8080.
  3. 3. Écrire l'unité

    Pourquoi ? systemd démarre le service au boot, le relance en cas de crash et l'isole du reste du système.

    Créez /etc/systemd/system/app.service avec Restart=on-failure et des options de durcissement, rechargez systemd, activez et démarrez le service.
  4. 4. Tester le redémarrage automatique

    Pourquoi ? On vérifie le comportement en cas de crash plutôt que de le supposer.

    Tuez le processus principal avec SIGKILL, constatez qu'un nouveau PID apparaît, puis retrouvez l'événement dans le journal.
  5. 5. Surcharger l'unité

    Pourquoi ? Une surcharge (drop-in) modifie un service sans éditer son fichier, ce qui survit aux mises à jour.

    Limitez la mémoire du service à 200 Mo et son CPU à 50 % avec une surcharge, puis vérifiez les valeurs appliquées et le score de sécurité.
  6. 6. Planifier un contrôle avec un timer

    Pourquoi ? Un timer systemd journalise chaque exécution et rattrape celles manquées, contrairement à cron.

    Créez un service healthcheck qui interroge /health et un timer qui le lance chaque minute. Arrêtez l'application et observez l'échec dans le journal.

Niveau de difficulté : ●●○○○ (2/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 45 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

✉️ Poser une question

Articles recommandés

Paquets, services systemd, journaux et tâches planifiées

Installer et mettre à jour des logiciels avec apt et dnf, piloter les services avec systemctl, éc...

Bonnes Pratiques Kubernetes

Meilleures pratiques pour sécuriser et optimiser les déploiements Kubernetes.

Comparaison Offres Kubernetes

Analyse complète des offres managées de Kubernetes avec points forts, fonctionnalités, tarificati...

Stratégies de placement Kubernetes

Présentation des stratégies de placement dans Kubernetes pour optimiser la gestion des charges de...

CNI Kubernetes : Flannel, Calico et Cilium comparés

Kubernetes CNI : comprendre les plugins réseau (Container Network Interface) et comparer Flannel,...

Gestionnaires de packages

Les différents gestionnaires de packages pour Kubernetes et leurs avantages.

Jobs vs Serverless

Comparaison entre les Jobs Kubernetes et le modèle Serverless pour le calcul de tâches en arrière...

PersistentVolume, PersistentVolumeClaim et StorageClass dans Kubernetes

PersistentVolume (PV), PersistentVolumeClaim (PVC) et StorageClass dans Kubernetes : différences,...

Resource Quota Kubernetes

Guide complet sur les quotas de ressources Kubernetes pour la gestion des namespaces.