Base de connaissances

Conteneurs LXC Avancé 20 min

Déployer une application avec systemd dans un LXC

Transformer un script ou une petite application en service durable et redémarrable.

Objectif pratique

Mettre en production une petite application dans un LXC avec un service redémarrable et facile à surveiller.

Distribution utilisée

Debian / Ubuntu

Sommaire

  1. Créer un utilisateur de service
  2. Choisir un dossier durable
  3. Écrire une unité compréhensible
  4. Tester les transitions
  5. Lire les journaux tout de suite
  6. Documenter la procédure de redéploiement

Guide détaillé

Étape 1

Créer un utilisateur de service

L’application ne doit pas tourner en root par confort. Un utilisateur dédié limite les dégâts et clarifie les permissions.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Créer un utilisateur d’administration

Le compte dédié évite d’utiliser root au quotidien. Testez toujours la nouvelle session avant de retirer un accès existant.

Debian / Ubuntu
sudo adduser deploy
sudo usermod -aG sudo deploy
su - deploy
sudo whoami
exit
Ce que font les commandes
  • `adduser` crée un compte utilisateur interactif.
  • `usermod -aG sudo` ajoute l’utilisateur au groupe d’administration sudo.
  • `su - utilisateur` ouvre une session avec le compte ciblé pour tester son environnement.
  • `whoami` confirme l’utilisateur actif, pratique après un test sudo.
  • `exit` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Étape 2

Choisir un dossier durable

Placez le code et les données dans des chemins prévisibles, hors du répertoire personnel. Cela rend sauvegardes et migrations plus lisibles.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Choisir un dossier durable" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Étape 3

Écrire une unité compréhensible

Le fichier systemd doit indiquer le dossier de travail, la commande de démarrage, l’utilisateur et la politique de redémarrage. Chaque ligne doit avoir une raison.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Écrire une unité compréhensible" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Étape 4

Tester les transitions

Démarrage, arrêt, redémarrage et crash simulé donnent plus d’informations qu’un simple statut actif.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Tester les transitions" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Étape 5

Lire les journaux tout de suite

Les erreurs de chemin, variable manquante ou permission apparaissent souvent au premier lancement. Corrigez avant d’ajouter proxy ou domaine.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Conserver les traces avant correction

En incident, collectez avant de nettoyer. Ces fichiers servent ensuite à comprendre la cause et vérifier la portée.

Debian / Ubuntu
sudo mkdir -p /root/incident-$(date +%F-%H%M)
sudo ss -tulpn > /root/incident-$(date +%F-%H%M)/sockets.txt
sudo ps auxf > /root/incident-$(date +%F-%H%M)/processes.txt
sudo journalctl --since '24 hours ago' > /root/incident-$(date +%F-%H%M)/journal.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `ss -tulpn` liste les ports ouverts et les processus qui écoutent.
  • `ps` affiche les processus pour repérer ceux qui consomment le plus.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Étape 6

Documenter la procédure de redéploiement

Notez comment mettre à jour l’application et revenir en arrière. Le service sera plus fiable si la maintenance est répétable.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour ce conteneur LXC, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Documenter la procédure de redéploiement" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Transformer une application en service systemd

systemd permet de démarrer automatiquement une application, lire ses journaux et la redémarrer proprement.

Debian / Ubuntu
sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true
sudo mkdir -p /srv/app
sudo chown -R appsvc:appsvc /srv/app
sudo nano /etc/systemd/system/app.service
sudo systemctl daemon-reload
sudo systemctl enable --now app.service
systemctl status app.service --no-pager
journalctl -u app.service -n 80 --no-pager
Ce que font les commandes
  • `sudo useradd --system --home /srv/app --shell /usr/sbin/nologin appsvc || true` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `nano` ouvre le fichier à modifier ; remplacez les valeurs exemples avant d’enregistrer.
  • `systemctl daemon-reload` recharge les unités systemd après modification d’un fichier de service.
  • `systemctl enable --now` démarre le service immédiatement et l’active au prochain démarrage.
  • `systemctl status` confirme l’état du service et affiche les dernières lignes utiles.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En LXC, certaines actions noyau, modules kernel, Docker imbriqué ou montages spéciaux peuvent dépendre de la configuration de l’hôte. Si une commande touche au noyau, vérifiez d’abord que le conteneur le permet.
  • Niveau avancé : adaptez les chemins, noms de services et ports à votre application. Ne copiez pas les commandes sans remplacer les valeurs exemples.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • `systemctl status app.service` doit être actif.
  • `journalctl -u app.service` ne doit pas afficher de boucle d’erreurs.

Checklist finale

  • Utilisateur dédié
  • Unité systemd active
  • Journaux lisibles