\documentclass[10pt]{article} \usepackage{fontspec} \usepackage[a4paper,portrait, bmargin=10mm,lmargin=15mm,rmargin=15mm,tmargin=10mm]{geometry} \pagenumbering{gobble} \setlength{\parindent}{0em} \setlength{\parskip}{0em} \setmainfont{DejaVu Sans} \newcommand{\hr}{\rule{\textwidth}{1pt}} \newenvironment{itmz}{\begin{itemize} \setlength{\itemsep}{0em} }{\end{itemize}} \begin{document} CNAM / UAMM91 \hfill Mémoire ingénieur / Sujet (version n°1) \hfill IRSM (CYC9104A) Marc Beninca \hfill \textbf{Systèmes d’exploitation autonomes incrémentaux} \hfill 2020 → 2021 \section{Problématique : maintenance des systèmes d’exploitation} En fonction des cas d’utilisation, maintenir des systèmes d’exploitation nécessite de penser :\\ mises à jour, indisponibilité, sauvegardes, tests, instantanés, restaurations, recettes de configuration. \subsection{Systèmes de fichiers, installés sur partitions, avec accès en écriture} \subsubsection{Système de fichiers conventionnel : ext4} \begin{itmz} \item{\textbf{avantages} : instantanéité des 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{\textbf{avantages} : possibilité de remettre rapidement en état des 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 : btrfs, zfs} \begin{itmz} \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 utilisable, pas encore utilisé par défaut} \end{itmz} \subsection{Images autonomes, sans installation, avec accès en lecture seule} \subsubsection{Amorçage sans gestion de persistance} \begin{itmz} \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} \begin{itmz} \item{\textbf{avantages} : conservation sur une partition marquée des fichiers modifiés du système} \item{\textbf{inconvénients} : pas de séparation entre persistance de fichiers systèmes et de données} \end{itmz} \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. \begin{itmz} \item{\textbf{avantages} : redémarrage = restauration, mise à jour = sauvegarde, plus de partition système} \item{\textbf{inconvénients} : maintenance exhaustive si effectuée manuellement} \end{itmz} \subsection{Fabrication} \subsubsection{Miroirs de dépôts officiels distribution et éditeurs} \begin{itmz} \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 avant utilisation des paquets synchronisés} \end{itmz} \subsubsection{Construction d’un système de fichiers} \begin{itmz} \item{prise en compte du type de machine hôte cible : physique, virtuelle, conteneur} \item{création d’un système de fichiers de base minimal de système d’exploitation : \textbf{debootstrap}} \item{intégration des paquets nécessaires à la construction de 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} \end{itmz} \subsection{Encapsulation dans un fichier image} \begin{itmz} \item{utilisation d’un format de fichier adapté au montage en lecture seule : \textbf{squashfs}} \item{algorithmes de compression des données disponibles : \textbf{gzip}, \textbf{lzma}, \textbf{lzo}, \textbf{lz4}, \textbf{xz}, \textbf{zstd}} \item{niveau supplémentaire d’encapsulation avec un format de fichier hybride : \textbf{iso}} \end{itmz} \subsection{Sécurité du fichier image produit} \begin{itmz} \item{assurer l’intégrité du fichier par le calcul d’une somme de contrôle : \textbf{sha256}, \textbf{sha512}} \item{garantir l’authenticité de l’image par une signature du fichier produit : \textbf{gpg}} \end{itmz} \subsection{Amorçage} \begin{itmz} \item{utilisation d’un chargeur de démarrage signé : \textbf{grub}, \textbf{bios}, \textbf{uefi}, 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é des images} \item{chargement d’image(s) en mémoire vive : complet, partiel} \end{itmz} \subsection{Mise à niveau incrémentale} \begin{itmz} \item{fabrication d’une nouvelle image, à partir de la dernière, pour le prochain redémarrage} \item{si le redémarrage est différé, mise à jour du système d’exploitation en mémoire} \item{si le redémarrage est nécessaire et critique, réduction de sa durée : \textbf{kexec-tools}} \end{itmz} \section{Scripts d’automatisation potentiels} \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} \end{itmz} \hr \appendix \section{Contexte professionnel} 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’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 diverses} \begin{itmz} \item{interdiction statutaire d’exercer simultanément une autre activité professionnelle} \item{pas de droits d’administration sur le gestionnaire de l’infrastructure virtuelle distante} \item{stations de travail locales sans virtualisation, administrées par une entité extérieure} \item{ordinateurs portables réquisitionnés pour le personnel exerçant son activité en télétravail} \end{itmz} \subsection{Propriété intellectuelle} \begin{itmz} \item{tout développement effectué sur le temps de travail devient de fait la propriété du Ministère} \item{une solution d’automatisation aurait bien plus de portée en étant publiée sous licence libre} \end{itmz} \section{Cadre de production du mémoire ingénieur} Compte tenu des différentes contraintes énoncées ci-dessus, est-il possible : \begin{itmz} \item{de construire mon mémoire ingénieur Hors Temps de Travail ?} \end{itmz} \end{document}