Global corrections

This commit is contained in:
Yorick Barbanneau 2021-09-01 00:42:26 +02:00
parent ab1b7616f7
commit e14105c485
8 changed files with 166 additions and 143 deletions

View file

@ -1,12 +1,12 @@
\chapter{Migration des services de jails FreeBSD vers docker}
\label{chap:migration_docker}
\large \paragraph{} L'intégralité des services utilisé par le service
\large \paragraph{} L'intégralité des services utilisés par le service
informatique fonctionnaient dans des \textit{jails FreeBSD}\footnote{Système de
conteneur propre aux système BSD. La première version est sortie en mars 2000
conteneur propre aux systèmes BSD. La première version est sortie en mars 2000
avec FreeBSD 4}. Étant la seule personne au service informatique a avoir des
compétences dans l'administration de serveur FreeBSD, at afin d'anticiper
mon départ prévu début août, nous avons décidé de tout migrer vers des
compétences dans l'administration de serveur FreeBSD, et afin d'anticiper
mon départ prévu début août 2021, nous avons décidé de tout migrer vers des
conteneurs \textit{Docker}.
\normalsize
@ -33,8 +33,8 @@ Tous les conteneurs fonctionnaient sur une seule machine physique, il y en avait
\subsection{Défintion de la nouvelle architecture}
\paragraph{} Nous sommes partis du principe d'un conteneur par service, et ce
même pour les base de données attachées. En frontal,
\paragraph{} Nous sommes partis du principe d'un conteneur par service, mais
aussi pour les bases de données attachées. En frontal,
\link{https://taefik.io}{Træfik} a été retenu pour son intégration poussée avec
Docker. Il fera office de reverse-proxy et de chiffrer le traffic. Un schéma du
fonctionnement attendu de la nouvelle installation est disponible figure
@ -42,14 +42,14 @@ fonctionnement attendu de la nouvelle installation est disponible figure
\begin{figure}[H]
\includegraphics[width=\linewidth]{generated/plan_docker}
\caption{Instalation attendue des conteneurs Docker afin de remplacer les
\caption{Installation attendue des conteneurs Docker afin de remplacer les
\textit{Jails BSD}}
\label{Fig:docker}
\end{figure}
\section{L'installation en laboratoire}
\subsubsection{La machine hôte}
\subsection{La machine hôte}
\paragraph{} Le système retenu pour la machine hôte est \textit{Debian
Stable}\footnote{Debian 10 au moment de l'installation du serveur}. Le
@ -57,31 +57,34 @@ système est installé sur un ensemble en \textit{RAID 1} afin d'être tolérant
la panne. Il a fallu prendre des précautions afin d'obtenir une vrai tolérance.
Ainsi le chargeur de démarrage est installé \textbf{sur les deux disques}.
\subsubsection{les conteneurs}
\subsection{les conteneurs}
\paragraph{} La définition des conteneurs s'est faites avec
\textit{Docker-Compose}. Ce fichier contient les paramètres relatifs au
\paragraph{} La définition des conteneurs s'est faite avec
\textit{Docker-Compose}. Ce fichier contient les paramètres relatifs aux
conteneurs~: source des images, variables d'environnement, volumes de données.
\paragraph{} Lucas s'est chargé de l'écriture du premier jet de ce fichier
pendant que je me chargeait de tester l'importation des données dans des
pendant que je me chargeais de tester l'importation des données dans des
conteneurs.
\subsubsection{Le cas GLPI}
\paragraph{} Le principe des image docker est simple~: il suffit souvent d'aller
faire \textit{\flqq ses courses\frqq} sur le \textit{dockerhub} où l'on trouve
des inages toute faites pour beaucoup de services. \textbf{Problème}~: aucune
des images toutes faites pour beaucoup de services. \textbf{Problème}~: aucune
des images GLPI testée ne fonctionne.
\paragraph{} Lucas a donc décidé de créer une image à partir d'une autre de
\paragraph{} Lucas a donc décidé de créer une image à partir d'une de
base. Je suis intervenu ensuite pour intégrer le plugin \textit{Fusion
inventory}, le point d'entrée des agents et des tâches
\textit{cron}\footnote{système de planification des tâches}.
Cette Dockerfile est présentée annexe \ref{chap:dockerfile} (page
\pageref{chap:dockerfile}).
\subsubsection{Le cas Gitea}
\paragraph{} La migration de cette application impliquait aussi la migratoion de
\paragraph{} La migration de cette application impliquait aussi la migration de
sa base de données de \textit{SQLite} vers \textit{MariaDB}. J'ai passé deux
jours complets afin de \textbf{tester plusieurs système de migration} mais rien
n'a fonctionné correctement~:
@ -99,9 +102,18 @@ n'a fonctionné correctement~:
\paragraph{} Comme les données des dépôts pouvaient être \textbf{facilement
restaurées} avec l'export réalisé depuis la \textit{Jail}, j'ai décidé de
repartir de zéro du côté de la base de données. J'ai donc recréé les comptes
uilisateurs et chacun a replacé sa clef SSH\footnote{nous n'utilisions aucune
fonctionnalité liées à la base de données à part l'authentification}; évitant de
perdre davantage de temps.
uilisateurs\footnote{nous n'utilisions aucune fonctionnalité liées à la base de
données à part l'authentification}; évitant de perdre davantage de temps.
\subsection{Mise en place des sauvegardes}
\paragraph{} Nous avons décidé avec Lucas de conserver \textit{BorgBackup} pour
les sauvegardes des données. Cette solution a déjà fait ses preuves et montré sa
fiabilité. Celle-ci est effectuée sur un serveur distant en utilisant SSH.
\paragraph{} Le pricipe est simple~: sauvegarder les volumes Docker et les
exports des différentes base de données. Un exemple de script simplifié est
disponible en annexe \ref{chap:script_borg} (page \pageref{chap:script_borg}).
\section{Le passage en production}
@ -121,5 +133,12 @@ s'est \textbf{globalement bien passée}.
\section{En conclusion}
\paragraph{} Ce projet a sûrement été \textbf{le plus intéressant de ces
derniers mois}. Travailler de concert avec Lucas a été source de motivations et
de plaisir. J'ai d'ailleurs beaucoup appris à ses côtés.
derniers mois}. Travailler de concert avec Lucas a été source de motivation et
de plaisir. Nos échanges de compétences ont permis d'avancer sereinement et
d'attendre nos objectifs \textbf{sans difficulté majeure}.
\paragraph{} Nous avons réussi à migrer toute l'infrastructure dans les temps et
même commencé à tester
\link{https://github.com/dani-garcia/vaultwarden}{ValtWarden}. Lucas a
d'ailleurs continué sur sa lancée et l'a mis en production, ainsi que d'autres
conteneurs, après mon départ.