Global corrections
This commit is contained in:
parent
ab1b7616f7
commit
e14105c485
8 changed files with 166 additions and 143 deletions
|
@ -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.
|
||||
|
|
Reference in a new issue