33 Commits 117609b9d6 ... d4bc5dfe2b

Author SHA1 Message Date
  Marc Beninca d4bc5dfe2b 1 month ago
  Marc Beninca 8a555ee391 request 1 month ago
  Marc Beninca c142891c5e last 1 month ago
  Marc Beninca 58242e6b96 fixes 1 month ago
  Marc Beninca 96b6a84c67 pkg 1 month ago
  Marc Beninca 6947e8ff2d pi 1 month ago
  Marc Beninca 9f2aff7a0e actif 1 month ago
  Marc Beninca 15136a56e3 wip 1 month ago
  Marc Beninca f6a86d8de7 gnu/linux 1 month ago
  Marc Beninca e30e31f27a système/données 1 month ago
  Marc Beninca c6682ac230 debian 1 month ago
  Marc Beninca 71dedeea9b fs 1 month ago
  Marc Beninca 1726e4ce9c wip 1 month ago
  Marc Beninca db8d98ce95 persist 1 month ago
  Marc Beninca 1589b482b2 wip 1 month ago
  Marc Beninca 4c9a073340 ext 1 month ago
  Marc Beninca 495d636cea wip 1 month ago
  Marc Beninca d9d3d3723b wip 1 month ago
  Marc Beninca 22be02ead5 wip 1 month ago
  Marc Beninca afd4948d4c wip 1 month ago
  Marc Beninca 71a0ab02a6 wip 1 month ago
  Marc Beninca 03a5a4798b wip 1 month ago
  Marc Beninca 9c6d0c084f wip 1 month ago
  Marc Beninca 0adca9e253 wip 1 month ago
  Marc Beninca 66490583a7 wip 1 month ago
  Marc Beninca e82faa593b wip 1 month ago
  Marc Beninca c7b696f6ed v1 1 month ago
  Marc Beninca 9c3bfca0ab wip 1 month ago
  Marc Beninca e173cc7795 wip 1 month ago
  Marc Beninca 6fd5445d93 wip 1 month ago
  Marc Beninca 2652fd04ac gras,autonome 1 month ago
  Marc Beninca 5a0ed7e493 wip 1 month ago
  Marc Beninca c4c6272d59 wip 1 month ago
1 changed files with 83 additions and 55 deletions
  1. 83 55
      cnam/travaux/mémoire/topic.tex

+ 83 - 55
cnam/travaux/mémoire/topic.tex

@@ -1,4 +1,4 @@
-\documentclass[12pt]{article}
+\documentclass[10pt]{article}
 
 \usepackage{fontspec}
 \usepackage[a4paper,portrait,
@@ -17,102 +17,125 @@ bmargin=10mm,lmargin=15mm,rmargin=15mm,tmargin=10mm]{geometry}
 
 \begin{document}
 
-CNAM / UAMM91 \hfill Mémoire ingénieur / Sujet \hfill IRSM (CYC9104A)
+CNAM / UAMM91 \hfill Mémoire ingénieur / Sujet (version n°1) \hfill IRSM ↔ CYC9104A
 
-Marc Beninca \hfill Systèmes d’exploitation incrémentaux \hfill 2020 → 2021
+Marc Beninca \hfill \textbf{Systèmes d’exploitation autonomes incrémentaux} \hfill 2020 → 2021
 
 \hr
 
-\section{Problématique de l’existant}
+\section{Problématique : maintenance des systèmes d’exploitation}
 
-\subsection{Partitions systèmes avec accès en écriture}
+En fonction des cas d’utilisation, maintenir des systèmes d’exploitation peut nécessiter de penser :\\
+mises à jour, indisponibilité, sauvegardes, tests, instantanés, restaurations, recettes de configuration.
 
-\subsubsection{Système de fichiers sans gestion d’instantanés}
+\subsection{Systèmes de fichiers, installés sur partitions, avec accès en écriture}
+
+\subsubsection{Système de fichiers conventionnel : ext2, ext3, ext4, jfs, xfs}
+
+\begin{itmz}
+\item{\textbf{avantages} : instantanéité de toutes les modifications apportées aux fichiers du système}
+\item{\textbf{inconvénients} : nécessité de régulièrement réaliser et tester des sauvegardes du système}
+\end{itmz}
+
+\subsubsection{Système de fichiers géré par des recettes de configuration : ansible, chef, puppet}
 
 \begin{itmz}
-\item{avantages :}
-\item{inconvénients :}
+\item{\textbf{avantages} : possibilité de remettre rapidement en état certains pans entiers du système}
+\item{\textbf{inconvénients} : pas de résolution des écarts de configuration non gérés par les recettes}
 \end{itmz}
 
-\subsubsection{Système de fichiers avec gestion d’instantanés}
+\subsubsection{Système de fichiers avec gestion d’instantanés : btrfs, zfs}
 
 \begin{itmz}
-\item{avantages :}
-\item{inconvénients :}
+\item{\textbf{avantages} : permet de sauvegarder et restaurer un état des fichiers du système à un instant}
+\item{\textbf{inconvénients} : réduit progressivement l’espace disponible, pas encore utilisé par défaut}
 \end{itmz}
 
-\subsection{Images « à la volée » avec accès en lecture seule}
+\subsection{Images autonomes, sans installation, avec accès en lecture seule}
 
-\subsubsection{Amorçage sans gestion de persistance de données}
+\subsubsection{Amorçage sans gestion de persistance}
 
 \begin{itmz}
-\item{avantages :}
-\item{inconvénients :}
+\item{\textbf{avantages} : démarrer sur un système autonome dans un état ayant été figé au préalable}
+\item{\textbf{inconvénients} : perdre au redémarrage toutes modifications faites aux fichiers du système}
 \end{itmz}
 
-\subsubsection{Amorçage avec gestion de persistance de données}
+\subsubsection{Amorçage avec gestion de persistance}
 
 \begin{itmz}
-\item{avantages :}
-\item{inconvénients :}
+\item{\textbf{avantages} : conservation sur une partition marquée des fichiers modifiés depuis le démarrage}
+\item{\textbf{inconvénients} : pas de séparation entre la persistance des fichiers systèmes et des données}
 \end{itmz}
 
-\section{Proposition : fonctionnement incrémental}
+\hr
+
+\section{Proposition : fonctionnement autonome incrémental}
+
+Mettre en œuvre un système d’exploitation hybride entre un système installé et un système autonome :\\
+cumuler les avantages des deux, en images incrémentales ou complètes, sans les divers inconvénients.
 
-\subsection{Fabrication}
+\begin{itmz}
+\item{\textbf{avantages} : redémarrage = restauration, mise à jour = sauvegarde, séparation système/données}
+\item{\textbf{inconvénients} : maintenance exhaustive si effectuée régulièrement et d’une façon manuelle}
+\end{itmz}
 
-\subsubsection{Miroirs de dépôts officiels distribution et éditeurs}
+\subsection{Miroirs de dépôts officiels distribution et éditeurs}
 
 \begin{itmz}
-\item{synchronisation locale pour accès rapide, stable et hors-ligne : apt-mirror}
-\item{vérification d’intégrité avant utilisation des paquets synchronisés}
+\item{synchronisation locale pour accès rapide, stable et hors-ligne : \textbf{apt-mirror}, \textbf{debmirror}, \textbf{ftpsync}}
+\item{vérification d’intégrité des dépôts locaux avant utilisation de leurs paquets logiciels synchronisés}
 \end{itmz}
 
-\subsubsection{Construction d’un système de fichiers}
+\subsection{Construction d’un système de fichiers autonome (debian gnu/linux)}
 
 \begin{itmz}
-\item{prise en compte du type de machine cible : physique, virtuelle, conteneur}
-\item{détermination des paquets logiciels à installer et à configurer}
-\item{transformation en système d’exploitation « à la volée »}
+\item{prise en compte du type de machine hôte pour le choix des paquets de base : physique, virtuelle}
+\item{création d’un système de fichiers de base minimal à partir des dépôts locaux : \textbf{debootstrap}}
+\item{intégration des paquets nécessaires à la construction d’autres systèmes autonomes, si besoin}
+\item{transformation effective en système d’exploitation autonome : \textbf{live-boot}, \textbf{update-initramfs}}
+\item{détermination des autres paquets logiciels à installer et à configurer, en fonction des besoins}
+\item{déport des données à rendre persistantes, avec des liens symboliques pointant vers partition(s)}
 \end{itmz}
 
-\subsubsection{Encapsulation dans un fichier image}
+\subsection{Encapsulation dans un fichier image}
 
 \begin{itmz}
-\item{choix d’un format adapté au montage en lecture seule : squashfs}
-\item{algorithmes de compression disponibles : gz, xz, zstd}
-\item{niveau supplémentaire d’encapsulation avec un format hybride : iso}
+\item{utilisation d’un format de fichier amorçable adapté au montage en lecture seule : \textbf{squashfs}}
+\item{choix d’un des divers algorithmes de compression disponibles : \textbf{gzip}, \textbf{lzma}, \textbf{lzo}, \textbf{lz4}, \textbf{xz}, \textbf{zstd}}
+\item{niveau supplémentaire d’encapsulation avec un format de fichier amorçable hybride : \textbf{iso}}
 \end{itmz}
 
-\subsubsection{Sécurité}
+\subsection{Sécurité du fichier image produit}
 
 \begin{itmz}
-\item{intégrité par calcul de sommes de contrôle : sha512sum}
-\item{authenticité via signature des images produites : gpg}
+\item{assurer l’intégrité du fichier final par le calcul d’une somme de contrôle : \textbf{sha256}, \textbf{sha512}}
+\item{garantir l’authenticité de l’image grâce à une signature numérique associée au fichier : \textbf{gpg}}
 \end{itmz}
 
-\subsection{Amorçage}
+\subsection{Amorçage de fichier(s) image(s) sécurisé(s)}
 
 \begin{itmz}
-\item{utilisation d’un chargeur de démarrage signé : grub, secure boot}
-\item{création d’un menu de démarrage à choix multiple d’images}
-\item{vérification d’authenticité et d’intégrité des images}
-\item{chargement d’image(s) en mémoire vive : complet, partiel}
+\item{chargeur de démarrage avec gestion de signature numérique : \textbf{grub}, \textbf{bios}, \textbf{uefi}, \textbf{secure boot}}
+\item{création d’un menu de démarrage à choix multiple d’images : \textbf{grub.cfg}, \textbf{squash4}, \textbf{iso9660}}
+\item{vérification d’authenticité et d’intégrité de fichiers images : \textbf{gcry\_sha256}, \textbf{gcry\_sha512}, \textbf{pgp}}
+\item{chargement d’image(s) en mémoire vive d’une machine hôte : complet, partiel avec \textbf{overlayfs}}
 \end{itmz}
 
-\subsection{Mise à niveau}
+\subsection{Mise à niveau incrémentale}
 
 \begin{itmz}
-\item{système d’exploitation en cours d’exécution}
-\item{nouvelle image pour le prochain redémarrage}
+\item{fabrication d’une nouvelle image, à partir de la plus récente, pour le prochain redémarrage}
+\item{si le redémarrage est différé, mise à jour du système d’exploitation actuellement en mémoire}
+\item{si le redémarrage est nécessaire et critique, réduction de sa durée effective : \textbf{kexec-tools}}
 \end{itmz}
 
-\section{Scripts d’automatisation potentiels}
+\section{Automatisations potentiellement implémentables}
 
 \begin{itmz}
-\item{synchronisation locale et vérification d’intégrité, de façon parallélisée}
-\item{construction de systèmes de fichiers à partir de profils versionnés}
-\item{génération à la volée de menu de démarrage}
+\item{vérification d’intégrité des dépôts, voire le processus de synchronisation, de façon parallélisée}
+\item{construction de systèmes de fichiers autonomes complets, à partir de différents profils versionnés}
+\item{création de nouveaux fichiers images, par la mise à jour d’images amorçables déjà existantes}
+\item{génération à la volée de menus de démarrage, à choix multiples d’images amorçables détectées}
 \end{itmz}
 
 \hr
@@ -121,29 +144,34 @@ Marc Beninca \hfill Systèmes d’exploitation incrémentaux \hfill 2020 → 202
 
 \section{Contexte professionnel}
 
-M’étant engagé à compter de 2001 envers le Ministère des Armées, je travaille :
+En tant que militaire engagé de carrière, depuis 19 ans envers le Ministère des Armées, je travaille :
 \begin{itmz}
-\item{depuis 2001 pour le corps des sous-officiers de l’Armée de l’Air}
-\item{depuis 2016 sous la Direction Interarmées des Réseaux d’Infrastructure et SI}
+\item{depuis 2001 pour le corps des sous-officiers d’active de l’actuelle Armée de l’Air et de l’Espace}
+\item{depuis 2016 sous la Direction Interarmées des Réseaux d’Infrastructure et Systèmes d’Information}
 \end{itmz}
 
-\subsection{Restrictions}
+\subsection{Restrictions diverses}
 
 \begin{itmz}
-\item{aucun droit d’administration sur l’infrastructure virtuelle attribuée}
+\item{interdiction, en tant que militaire, d’exercer simultanément une autre activité professionnelle}
+\item{pas de droits d’administration sur le gestionnaire de l’infrastructure virtuelle distante partagée}
+\item{stations de travail locales sans possibilité de virtualisation, administrées par une entité extérieure}
+\item{ordinateurs portables réquisitionnés pour le personnel pouvant exercer son activité en télétravail}
 \end{itmz}
 
 \subsection{Propriété intellectuelle}
 
 \begin{itmz}
-\item{toute solution développée sur le temps de travail devient la propriété du Ministère}
+\item{tout développement effectué sur le temps de travail devient directement la propriété du Ministère}
+\item{le fonctionnement ici proposé a un champ d’application plus large que le seul cadre de mon emploi}
+\item{une solution pour son automatisation aurait donc plus de portée si publiée sous une licence libre}
 \end{itmz}
 
-\section{Cadre de production du mémoire ingénieur}
+\section{Cadre de production du mémoire}
 
+Compte tenu des circonstances précédemment énoncées, et dans l’intérêt du projet en lui-même :
 \begin{itmz}
-\item{interdiction statutaire d’exercer simultanément une autre activité}
+\item{m’est-il possible de conduire la réalisation de ce mémoire ingénieur « Hors Temps de Travail » ?}
 \end{itmz}
-Est-il possible de manière indépendante ?
 
 \end{document}