Add chapter 5
This commit is contained in:
parent
95528af077
commit
16d48fd205
3 changed files with 2212 additions and 0 deletions
84
chapitres/chapitre_5.tex
Normal file
84
chapitres/chapitre_5.tex
Normal file
|
@ -0,0 +1,84 @@
|
|||
\chapter{Migration des services de jails FreeBSD vers docker}
|
||||
|
||||
\large \paragraph{} L'intégralité des services utilisé 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
|
||||
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 de vers des
|
||||
conteneurs \textit{Docker}.
|
||||
|
||||
\normalsize
|
||||
\paragraph{} \textit{Docker} a l'avantage d'être une solution beaucoup plus
|
||||
répandue et accessible. Notre alternant Lucas la maitrisait déjà, ce qui n'
|
||||
etait pas mon cas. Nous avons donc travailler ensemble sur ce point.
|
||||
|
||||
\section{Migration de services existants}
|
||||
|
||||
\subsection{Inventaire}
|
||||
|
||||
\paragraph{} Nous avons commencé par faire un inventaire complet de l'existant.
|
||||
Tous les conteneurs fonctionnaient sur une seule machine physique, il y en avait
|
||||
3 en production~:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{un serveur web} avec dessus GLPI, NextCloud et Dokuwiki
|
||||
\item \textbf{un serveur MariaDB} pour les bases GLPI et Nextcloud
|
||||
\item \textbf{une instance Gitea}, utilisant le serveur web comme frontal
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{} Le tout était sauvegardé sur une machine distante en SSH avec
|
||||
\link{https://www.borgbackup.org/}{Borg Backup} piloté par un script maison.
|
||||
|
||||
\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 attachees. En frontal, 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 \ref{Fig:docker} (page \pageref{Fig:docker}).
|
||||
|
||||
\begin{figure}[H]
|
||||
\includegraphics[width=\linewidth]{generated/plan_docker}
|
||||
\caption{Instalation attendue des conteneurs Docker afin de remplacer les
|
||||
\textit{Jails BSD}}
|
||||
\label{Fig:docker}
|
||||
\end{figure}
|
||||
|
||||
\section{L'installation}
|
||||
|
||||
\subsubsection{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
|
||||
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}
|
||||
|
||||
\paragraph{} La définition des conteneurs s'est faites avec
|
||||
\textit{Docker-Compose}. Ce fichier contient les paramètres relatifs au
|
||||
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
|
||||
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 GLPI testée ne fonctionne.
|
||||
|
||||
\paragraph{} Lucas a donc décidé de créer une image à partir d'une autre 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}.
|
||||
|
||||
\subsubsection{Finalisation des configuration}
|
||||
|
||||
\paragraph{} Une fois l'écriture du \textit{Docker-Compose} par Lucas finalisée,
|
||||
je suis intervenu sur la correction de certains problèmes et le peaufinage des
|
||||
configurations.
|
Reference in a new issue