diff --git a/outils/logiciels/systemd.md b/outils/logiciels/systemd.md new file mode 100644 index 0000000..8ffbe7b --- /dev/null +++ b/outils/logiciels/systemd.md @@ -0,0 +1,64 @@ +# Systemd + +Systemd est une suite logiciel pour systèmes GNU/Linux. Cette suite logiciel +fournit de nombreuses fonctionnalités, notamment pour configurer son OS et +suivre les *daemon*\ s actifs et leurs journaux. + +Ce document décrit *certaines* fonctionnalités de Systemd bien choisies, +lesquelles sont jugées intéressantes pour l'administration système ou pour +utilisateurices. Il sera sans doute découpé en plusieurs morceaux s'il devient +trop long. + + +## Unités de configuration: un format unifiant. + +### Services. + +### Minuteurs. + +### (Auto)mount. + + +## Configuration Réseau. + +### Obtenir des adresses IPs. + +### Configuration DNS (récursif). + + +## Journalisation. + +### Lecture des journaux: les bases. + +### Espaces de noms. + +### Partage de journaux entre machines. + + +## Aspect pratique (pour utilisateurices) + +### Chiffrement de disque. + +### Chargeur d'amorçage. + + +## Conteneurisation et virtualisation. + +### Conteneurisation. + +### Virtualisation. + + +## Gestion des secrets. + + +## Trucs et astuces. + +### Systèmes dynamiques: gestion des erreurs dans les services. + +### Administration à distance. + + + --> diff --git a/outils/logiciels/systemd.org b/outils/logiciels/systemd.org deleted file mode 100644 index f8ef173..0000000 --- a/outils/logiciels/systemd.org +++ /dev/null @@ -1,198 +0,0 @@ --*- mode: org; org-hide-emphasis-markers: t; -*- - -#+TITLE: Description de ~systemd~ et comment l'utiliser? -#+AUTHOR: Des nounous quelconques. -#+EMAIL: contact@crans.org -#+SEQ_TODO: TODO | in_progress | DONE -#+DESCRIPTION: Pfiou que c'est fastidieux d'apprendre à parler au monde entier. -#+INSTITUTE: Cr@ns -#+LANGUAGE: fr -#+STARTUP: overview - -Le présent document est destiné aux proptiétaires de VMs au Cr@ns, mais plus -généralement à nos membres qui souhaitent tirer le plus de ~systemd~. - -~systemd~ est une suite logicielle qui a pour objectif de fournir une interface -simple et unifiée à de nombreuses fonctionnalités du noyau Linux. En effet, les -APIs Linux sont nombreuses et les utilisations multiples des mêmes interfaces -peut être redondant. - -Par exemple, considérons la tâche "lancer une backup" et supposons que l'on -veuille (1) que la commande soit lancée un jour après que la dernière itération -se soit terminée, et (2) éviter qu'une nouvelle backup soit lancée si l'ancienne -n'est pas encore terminée. Systemd permet de paramétrer cela en quelques lignes, -là où d'autres seraient tentés de faire un cron, dont la tâche associés commence -par effectuer les vérications nécessaires au lancement conditionel. - ------ - -~systemd~ fournit un langage de configuration unifié et permet de paramétrer son -système de manière déclarative, ce qui mène à des configurations plus sûres, -systématiques et dont les sémantiques sont claires. - -* Résumé succint (et partiel) des tâches effectuées par un utilitaire ~systemd~ - -| *Tâche* | *Utilitaire disponible* | Optionel (pour un système basé sur ~systemd~) | -|------------------------+----------------------------+---------------------------------------------| -| Boot loader | ~systemd-boot~ | Oui | -| Init système (initrd) | ~systemd~ | Oui | -| Init système | ~systemd~ | Non | -| Gestionaire de service | ~systemd~ | Non | -| DNS récursif | ~systemd-resolvd~ | Oui | -| Gestion des ~$HOME~ | systemd-homed | Oui | -| Montage de disques | ~systemd-fstab-generator~ | Pas à ma connaissance | -| | ~systemd-gpt-auto-generator~ | Oui | -| | ~systemd-fsck-generator~ | Peut-être | -| Chiffrement de disques | ~systemd-cryptsetup~ | Oui | -| | ~systemd-cryptenroll~ | Oui | -| | ~systemd-crypttab-generator~ | | -| Chiffrement de secrets | ~systemd-creds~ | Oui | -| Gestion de l'horloge | ~systemd-timedated~ | Oui | -| | ~systemd-timesyncd~ | Oui | -| Nom d'hôte | ~systemd-hostnamed~ | Je ne sais pas | - -** Critiques communes - -/Cf/. la [[https://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/][FAQ officielle]] du projet. - -- /Il est dit que ~sd~ fait trop de choses/ ! - Ah bon ? Pourtant, ~systemd~ n'apparait pas si souvent dans le tableau ci-dessus. - -- /Il est dit que ~sd~ est une dictature/ ! - - Je ne contribue pas, mais suis les messages postés sur les mailing list et - parfois les issues du GitHub. Je trouve la communauté très accueillante. - - -** Évolution de ~systemd~ - -~systemd~ évolue rapidement, pour permettre une gestion toujours plus fine des -services, VMs, ... Certaines mises à jour de ~systemd~ retirent des -fonctionnalités (/e.g./ ~/usr~ séparé ou ~cgroupsv1~). Lorsqu'il y a retrait d'une -fonctionnalité, cela est au annoncé à l'avance, pour que chacun·e ait le temps -de s'y préparer. Pour les deux exemples susmentionnés, cela a été annoncé plus -d'un an à l'avance. - - -* Rappel : processus de démarrage d'un ordinateur /systemd/GNU/Linux/ - -Ce paragraphe présente la manière dont les machines démarrent. Cette -présentation se veut rapide, mais suffisante pour que chacun·e puisse comprendre -à quelle étape de ce processus les disques d'un ordinateur sont déchiffrés, -montés, /etc./ - -/Note/ : Je me concentrerai que sur les systèmes (U)EFI utilisant une table de -partitions ~gpt~ (/i.e./ le disque sur lequel se trouvent les fichiers de démarrage -contient un partitionnement ~gpt~). - -Procédé de démarrage : - -1. le logiciel de la carte mère est le premier élément à démarrer. Il charge - vos paramètres (/e.g./ secure boot activé ou non) ; - -2. le logiciel cherche à démarrer ou bien votre système d'exploitation - directement, ou bien un /système d'amorçage/ (/bootloader/ en, anglais) ; - -3. supposons qu'il lance ~systemd-boot~. - ~systemd-boot~ va constituer un menu avec - - une ou plusieurs entrées pour lancer le(s) système(s) d'exploitation - disponible(s) sur votre machine (ou en réseau), - - une entrée pour redémarrer dans le panneau de configuration du logiciel - UEFI, - - une entrée pour redémarrer ; - -4. Supposons que l'utilisateurice (ou ~systemd-boot~) choisisse un système sous - ~systemd~. - ~systemd~, qui est actuellement lancé dans un petit environnement (appelé - /initrd/) va chercher à initialiser le système, noramment en : - 1. déchiffrant la partition racine du système (si nécessaire), - 2. montant la partition racine du sysème, - 3. pivotant sur le système final dont ~systemd~ vient de monter ~/~. - -5. Nous sommes sur la bonne voie : le système de fichier principal est monté. - ~systemd~ monte les partitions/disques/resources réseaux supplémentaires - requis, met en place les sous-systèmes nécessaires (journalisation, réseau, - ...). - - L'un des derniers services démarré permet aux utilisateurices de - s'authentifier. Le sysème a fini de démarrer. - - -* TODO Configuration - -** TODO Unité de configuration (~man systemd.unit~) - -** TODO Service (~man systemd.service~) - -** TODO Cibles (~man systemd.target~) - -** TODO Minuteurs (~man systemd.timer~) - - -* TODO Systemd : aspect pratique - -** TODO Chiffrement (mots de passe, recovery key, FIDO2 ou TMP2) - -L'utilitaire principal pour gérer le chiffrement de disques est -~systemd-cryptenroll~. - -** TODO Reconnaissance automatique de partitions - -Lors de l'installation d'un système d'exploitation (avec UEFI), il y a au moins -deux partitions : -- une ESP (/EFI System Partition/), laquelle stocke les images de démarrage (dont - l'éventuel boot loader) ; -- une partition racine (root, ou ~/~), laquelle correspond au chemin ~/~ pour le - système. C'est ici que sont généralement stockées vos applications, la - configuration système, /etc/. - -Pour ~systemd~, touts les points de montage sont des /unités de montage/ et le -déchiffrement des disques est effectué via des /unités de services/. Ces unités -sont /générées/ (/Cf./ plus bas). - - -Lors du démarrage, il faut mettre le système de fichiers en place, /i.e./ monter -les disques. Lors de l'installation du système d'exploitation, deux choix -s'offrent à vous : -- /OU BIEN/ Décrire les blocks à déchiffrer dans ~/etc/crypttab~ (/crypt table/) et - les points de montage dans ~/etc/fstab~ (/file systems table/). - - Ces fichiers seront inclus dans l'image de démarrage (qui est souvent appellée - /initrd/ ou /initramfs/), afin que ~systemd~ sache quels disques déchiffrer et - monter (et comment). - -- /OU BIEN/ Indiquer le type de chaque partition ("X est ~/~", "Y est ~/boot~", "Z est - ~/home~", /etc./). Si tel est le cas, il n'est plus nécessaire d'inclure les - partitions concernées dans ~/etc/fstab~. - /Note/ : Si vous utilisez LUKS2 pour chiffrer vos disques, il n'est pas non plus - nécessaire d'indiquer ces éléments dans ~/etc/crypttab~. - - /Exemple/ : Partition ~/home~, troisième partition du disque ~/dev/nvme0n1~. - Il suffit : - - de changer le type de partition de ~/dev/nvme0n1p3~ : - #+begin_src fdisk - fdisk /dev/nvme0n1 - - t # change le type de partition - 3 # numéro de la partition à mettre à jour - home # (ou 43) abbréviation pour "933ac7e1-2eb4-4f13-b844-0e14e2aef915" - w # écrit les changements à la table de partitions - #+end_src - - retirer la ligne correspondant à ~/home~ dans ~/etc/fstab~ (et si la partition - est chiffrée, de ~/etc/crypttab~ aussi), - - régénrer les images de démarrage, - - redémarrer et tester. - - /Note/ : se référer à ~man systemd-gpt-auto-generator(8)~ pour une liste complète - des tags ~gpt~ reconnus par ~systemd~. - - -** TODO Redimension automatique de partitions - -** TODO UKI et Secure boot - -* TODO Réseau - -* TODO Journalisation - -* TODO Administration à distance