% Created 2024-05-15 mer. 17:15
% Intended LaTeX compiler: pdflatex
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{minted}
\usepackage[utf8]{inputenc}
\usepackage[inkscapelatex=false]{svg}
\usepackage[sfdefault]{AlegreyaSans}
\usepackage{multicol}
\usepackage{minted}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{positioning}
\renewcommand\listingscaption{Exemple de code}
\date{}
\title{TP1 - Cours de virtualisation avancée - \emph{Proxmox}}
\hypersetup{
 pdfauthor={Evrard Van Espen},
 pdftitle={TP1 - Cours de virtualisation avancée - \emph{Proxmox}},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)}, 
 pdflang={English}}
\begin{document}

\maketitle
{\large{Lire l'intégralité du TP avant de commencer quoi que ce soit !}}
\newpage

L'objectif de ce TP est de découvrir l'environnement de virtualisation "\emph{Proxmox}" en mettant en place vous même plusieurs machines type \emph{\textbf{conteneurs}} qui vont devoir communiquer ensemble.

Lors de ce TP, vous allez mettre en place des \textbf{conteneurs} (abrégés \textbf{CT}) plutôt que des machines virtuelles afin de gagner du temps.
Cependant, gardez bien en tête que \textbf{conteneurs} et \textbf{machines virtuelles} sont certes similaires mais très différents !
Dans l'environnement \emph{Proxmox}, les gestions des conteneurs et des machines virtuelles sont très similaires et par conséquent, savoir manipuler l'un permet aussi de savoir comment manipuler l'autre.

\section{Travail à réaliser}
\label{sec:orgc57519d}

\begin{center}
\includesvg[width=6cm]{./images/schema-0}
\end{center}


Votre objectif lors de ce TP va être de mettre en place l'architecture ci dessus.
Il va vous falloir mettre en place deux \textbf{conteneurs}, dont un sera connecté à internet et un second, qui communiquera avec le premier via un réseau privé.

Sur le premier conteneur, il vous faudra installer et configurer le serveur \emph{Nginx} qui fera office de \emph{proxy} \emph{HTTP} pour permettre l'accès au site \emph{web} hébergé sur le second conteneur.

\medskip

Au début de la séance de TP, j'attribuerai à chacun·es de vous trois adresses \emph{IP} que vous devrez configurer sur les machines, qui seront ensuite nommées "IP publique proxy", "IP privée proxy" et "IP application".
N'oubliez pas de les noter ;)

\medskip

L'adresse de l'interface \emph{web} de l'instance \emph{Proxmox} que vous utiliserez est disponible ici: \href{https://pve.virtuiut.online/}{\url{https://pve.virtuiut.online/}}.

Dans l'écran de connexion, veillez à ce que le champ \emph{"Realm"} soit sur \emph{"Proxmox VE authentication server"}.
Aussi, une alerte quant à la licence de \emph{Proxmox} peut s'afficher.
Si tel est le cas, cliquez sur \emph{"Ok"} et poursuivez.

\medskip

Pour vous y connecter, utilisez comme mot de passe et comme utilisateur votre nom et prénom, le tout attaché et sans accents, tirets ou espaces.

\medskip

Par exemple, je m’appelle \emph{"VAN ESPEN Évrard"}, j'utiliserai donc \texttt{vanespenevrard} comme \textbf{identifiant et comme mot de passe}.

\medskip

Si tout a été réalisé correctement, la page \emph{web} présente dans le serveur "application" devrait être accessible à l'adresse \texttt{<votre identifiant>.pve.virtuiut.online}.

\section{Votre mission en étapes}
\label{sec:orgca739ae}
\begin{itemize}
\item Vous devrez créer les deux machines, avec pour chacune un cœur \emph{CPU} et 512MB de mémoire vive;
\item Vous devrez ensuite configurer les machines pour permettre la communication entre elles;
\item Vous devrez enfin installer \emph{sur chaque conteneur} le paquet \emph{nginx} (veillez bien à le (re)démarrer à chaque modification de sa configuration (\texttt{systemd})), puisqu'il sera utilisé une fois comme serveur \emph{web}, et une fois comme \emph{reverse proxy}. Sur quel conteneur tourne chacun des \emph{nginx} ? ;
\item Éditez le fichier \texttt{/var/www/html/index.nginx-debian.html} en mettant votre nom dans la page.
\end{itemize}

\section{Champs à configurer}
\label{sec:orgcf15423}
Lors de la création du conteneur, voici les champs que vous aurez à configurer.
Les autres champs que vous rencontrerez sont à laisser à leur valeur défaut.

\subsection{Onglet \emph{"General"}}
\label{sec:org851d7e1}
\begin{itemize}
\item \emph{"Hostname"}
\item \emph{"Password"} et \emph{"Confirm password"} -> ce sera le mot de passe de l'utilisateur \texttt{root} dans le conteneur (5 caractères minimum)
\item \emph{"Resource pool"} -> sélectionnez la \emph{pool} à votre nom
\end{itemize}

\subsection{Onglet \emph{"Template"}}
\label{sec:orge73eefc}
\begin{itemize}
\item \emph{"Template"}
\end{itemize}

\subsection{Onglet \emph{"Disk"}}
\label{sec:orgb3bc091}
\begin{itemize}
\item \emph{"Disk size"} -> mettre \texttt{1GiB}
\end{itemize}

\subsection{Onglet \emph{"CPU"}}
\label{sec:org72301e5}
\begin{itemize}
\item \emph{"Cores"}
\end{itemize}

\subsection{Onglet \emph{"Memory"}}
\label{sec:orgf804ade}
\begin{itemize}
\item \emph{"Memory"}
\end{itemize}

\subsection{Onglet \emph{"Network"}}
\label{sec:org0d944fb}
\begin{itemize}
\item \emph{"Bridge"}
\item \emph{"IPv4/CIDR"}
\item \emph{"Gateway"} -> ici mettre \texttt{192.168.1.1} ou \texttt{192.168.10.1} selon l'ip
\end{itemize}


\section{Notes et astuces}
\label{sec:orgaa4df9c}
\begin{itemize}
\item N'oubliez pas, la machine \emph{"proxy"} doit avoir deux interfaces réseau, une pour le réseau public et une pour le réseau privé;
\item Dans \emph{Proxmox}, les conteneurs sont souvent nommés \texttt{CT};
\item Lors de la création du conteneur, vous n'avez pas à vous préoccuper de chaque champ de l'interface. Voir plus bas la liste des champs que vous devrez configurer;
\item La machine \emph{"proxy"} doit utiliser l'interface \texttt{vmbr0} et avoir comme adresse \emph{IP} l'adresse "IP publique proxy" ainsi que l'interface \texttt{vmbr1} et avoir comme adresse \emph{IP} l'adresse "IP privée proxy";
\item La machine \emph{"application"} devra utiliser l'interface \texttt{vmbr1} et avoir comme adresse \emph{IP} l'adresse "IP application";
\item Le fichier de configuration de \emph{nginx} se situe dans le répertoire  \texttt{/etc/nginx/site-enabled/} et se nomme \texttt{default};
\item Voici un fichier de configuration pour \emph{nginx} qui permet de l'utiliser en serveur \emph{proxy} comme demandé (replacez le contenu actuel du fichier):

\newpage

\begin{verbatim}
server {
    listen 80;
    server_name <votre identifiant proxmox>.pve.virtuiut.online;

    location / {
        proxy_pass http://<adresse IP application>:80;
    }
}
\end{verbatim}
\item Vous n'avez pas besoin de modifier la configuration de \emph{nginx} sur la machine "applicatif", par contre veilliez bien à le démarrer (\texttt{systemd}). Il sera accessible sur le port \texttt{80}.
\item Les serveurs \emph{nginx} vont-ils démarrer au \emph{boot} du conteneur ?
\end{itemize}


\newpage

\section{Adresses \emph{IP} à utiliser}
\label{sec:orga54b98c}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 1 & ANDRÉ Eloan & \texttt{192.168.1.2} & \texttt{192.168.10.2} & \texttt{192.168.10.3}\\[0pt]
PM 1 & BALLANDRAS Pierre & \texttt{192.168.1.3} & \texttt{192.168.10.4} & \texttt{192.168.10.5}\\[0pt]
PM 1 & BOILEAU Nathan & \texttt{192.168.1.4} & \texttt{192.168.10.6} & \texttt{192.168.10.7}\\[0pt]
PM 1 & BOUDOUL Anna & \texttt{192.168.1.5} & \texttt{192.168.10.8} & \texttt{192.168.10.9}\\[0pt]
PM 1 & DE LA FUENTE Axel & \texttt{192.168.1.6} & \texttt{192.168.10.10} & \texttt{192.168.10.11}\\[0pt]
PM 1 & KARTAL Emre & \texttt{192.168.1.7} & \texttt{192.168.10.12} & \texttt{192.168.10.13}\\[0pt]
PM 1 & KHEDAIR Rami & \texttt{192.168.1.8} & \texttt{192.168.10.14} & \texttt{192.168.10.15}\\[0pt]
PM 1 & LIVET Hugo & \texttt{192.168.1.9} & \texttt{192.168.10.16} & \texttt{192.168.10.17}\\[0pt]
PM 1 & PERRET Loris & \texttt{192.168.1.10} & \texttt{192.168.10.18} & \texttt{192.168.10.19}\\[0pt]
PM 1 & PINTRAND Aurelien & \texttt{192.168.1.11} & \texttt{192.168.10.20} & \texttt{192.168.10.21}\\[0pt]
PM 1 & SQUIZZATO Paul & \texttt{192.168.1.12} & \texttt{192.168.10.22} & \texttt{192.168.10.23}\\[0pt]
PM 1 & VALIN Arthur & \texttt{192.168.1.13} & \texttt{192.168.10.24} & \texttt{192.168.10.25}\\[0pt]
\end{tabular}
\end{center}

\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 2 & BONNEAU Baptiste & \texttt{192.168.1.14} & \texttt{192.168.10.26} & \texttt{192.168.10.27}\\[0pt]
PM 2 & BRODA Lou & \texttt{192.168.1.15} & \texttt{192.168.10.28} & \texttt{192.168.10.29}\\[0pt]
PM 2 & CENTENO Matéo & \texttt{192.168.1.16} & \texttt{192.168.10.30} & \texttt{192.168.10.31}\\[0pt]
PM 2 & DA COSTA CUNHA Bruno & \texttt{192.168.1.17} & \texttt{192.168.10.32} & \texttt{192.168.10.33}\\[0pt]
PM 2 & DELANIER Lucas & \texttt{192.168.1.18} & \texttt{192.168.10.34} & \texttt{192.168.10.35}\\[0pt]
PM 2 & EVARD Lucas & \texttt{192.168.1.19} & \texttt{192.168.10.36} & \texttt{192.168.10.37}\\[0pt]
PM 2 & FERREIRA Pierre & \texttt{192.168.1.20} & \texttt{192.168.10.38} & \texttt{192.168.10.39}\\[0pt]
PM 2 & FRANCO Nicolas & \texttt{192.168.1.21} & \texttt{192.168.10.40} & \texttt{192.168.10.41}\\[0pt]
PM 2 & GLENAT Alexandre & \texttt{192.168.1.22} & \texttt{192.168.10.42} & \texttt{192.168.10.43}\\[0pt]
PM 2 & HASSANI Mohamed & \texttt{192.168.1.23} & \texttt{192.168.10.44} & \texttt{192.168.10.45}\\[0pt]
PM 2 & JEAN Mathilde & \texttt{192.168.1.24} & \texttt{192.168.10.46} & \texttt{192.168.10.47}\\[0pt]
PM 2 & PARANT Louison & \texttt{192.168.1.25} & \texttt{192.168.10.48} & \texttt{192.168.10.49}\\[0pt]
PM 2 & SAOULA Zakariya & \texttt{192.168.1.26} & \texttt{192.168.10.50} & \texttt{192.168.10.51}\\[0pt]
PM 2 & ZBOROWSKI Lucas & \texttt{192.168.1.27} & \texttt{192.168.10.52} & \texttt{192.168.10.53}\\[0pt]
\end{tabular}
\end{center}

\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 3 & ASTOLFI Vincent & \texttt{192.168.1.28} & \texttt{192.168.10.54} & \texttt{192.168.10.55}\\[0pt]
PM 3 & BEDOURET Lucie & \texttt{192.168.1.29} & \texttt{192.168.10.56} & \texttt{192.168.10.57}\\[0pt]
PM 3 & CHAZOT Thomas & \texttt{192.168.1.30} & \texttt{192.168.10.58} & \texttt{192.168.10.59}\\[0pt]
PM 3 & DUFOUR Louis & \texttt{192.168.1.31} & \texttt{192.168.10.60} & \texttt{192.168.10.61}\\[0pt]
PM 3 & HASSOU Rayhân & \texttt{192.168.1.32} & \texttt{192.168.10.62} & \texttt{192.168.10.63}\\[0pt]
PM 3 & JOLYS Enzo & \texttt{192.168.1.33} & \texttt{192.168.10.64} & \texttt{192.168.10.65}\\[0pt]
PM 3 & LACHENAL Johan & \texttt{192.168.1.34} & \texttt{192.168.10.66} & \texttt{192.168.10.67}\\[0pt]
PM 3 & LANONE Maxence & \texttt{192.168.1.35} & \texttt{192.168.10.68} & \texttt{192.168.10.69}\\[0pt]
PM 3 & LEVADOUX Tim & \texttt{192.168.1.36} & \texttt{192.168.10.70} & \texttt{192.168.10.71}\\[0pt]
PM 3 & MIELCAREK Félix & \texttt{192.168.1.37} & \texttt{192.168.10.72} & \texttt{192.168.10.73}\\[0pt]
PM 3 & MOURGAND Chloé & \texttt{192.168.1.38} & \texttt{192.168.10.74} & \texttt{192.168.10.75}\\[0pt]
PM 3 & RANDON Noan & \texttt{192.168.1.39} & \texttt{192.168.10.76} & \texttt{192.168.10.77}\\[0pt]
PM 3 & REGNAULT Rémi & \texttt{192.168.1.40} & \texttt{192.168.10.78} & \texttt{192.168.10.79}\\[0pt]
PM 3 & VERDIER Nathan & \texttt{192.168.1.41} & \texttt{192.168.10.80} & \texttt{192.168.10.81}\\[0pt]
\end{tabular}
\end{center}

\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
WEB 1 & ARGOUT Owen & \texttt{192.168.1.42} & \texttt{192.168.10.82} & \texttt{192.168.10.83}\\[0pt]
WEB 1 & BARLET Tristan & \texttt{192.168.1.43} & \texttt{192.168.10.84} & \texttt{192.168.10.85}\\[0pt]
WEB 1 & BENJELLOUN Othmane & \texttt{192.168.1.44} & \texttt{192.168.10.86} & \texttt{192.168.10.87}\\[0pt]
WEB 1 & BRETTE Laurine & \texttt{192.168.1.45} & \texttt{192.168.10.88} & \texttt{192.168.10.89}\\[0pt]
WEB 1 & CARREAU Alexis & \texttt{192.168.1.46} & \texttt{192.168.10.90} & \texttt{192.168.10.91}\\[0pt]
WEB 1 & CARVALHEIRO Justin & \texttt{192.168.1.47} & \texttt{192.168.10.92} & \texttt{192.168.10.93}\\[0pt]
WEB 1 & DUPIN Théo & \texttt{192.168.1.48} & \texttt{192.168.10.94} & \texttt{192.168.10.95}\\[0pt]
WEB 1 & FILLOT Romain & \texttt{192.168.1.49} & \texttt{192.168.10.96} & \texttt{192.168.10.97}\\[0pt]
WEB 1 & FRIZOT Colin & \texttt{192.168.1.50} & \texttt{192.168.10.98} & \texttt{192.168.10.99}\\[0pt]
WEB 1 & LAMANDE Alexis & \texttt{192.168.1.51} & \texttt{192.168.10.100} & \texttt{192.168.10.101}\\[0pt]
WEB 1 & MEURET Justine & \texttt{192.168.1.52} & \texttt{192.168.10.102} & \texttt{192.168.10.103}\\[0pt]
WEB 1 & PIERRON Joan & \texttt{192.168.1.53} & \texttt{192.168.10.104} & \texttt{192.168.10.105}\\[0pt]
WEB 1 & ROCHELLE Hugo & \texttt{192.168.1.54} & \texttt{192.168.10.106} & \texttt{192.168.10.107}\\[0pt]
WEB 1 & SABATIER Audric & \texttt{192.168.1.55} & \texttt{192.168.10.108} & \texttt{192.168.10.109}\\[0pt]
WEB 1 & VALADE Lou & \texttt{192.168.1.56} & \texttt{192.168.10.110} & \texttt{192.168.10.111}\\[0pt]
\end{tabular}
\end{center}

\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
WEB 2 & ARNAL Rémi & \texttt{192.168.1.57} & \texttt{192.168.10.112} & \texttt{192.168.10.113}\\[0pt]
WEB 2 & BAVEREL Baptiste & \texttt{192.168.1.58} & \texttt{192.168.10.114} & \texttt{192.168.10.115}\\[0pt]
WEB 2 & BESSON Jérémy & \texttt{192.168.1.59} & \texttt{192.168.10.116} & \texttt{192.168.10.117}\\[0pt]
WEB 2 & FRÉVILLE Clément & \texttt{192.168.1.60} & \texttt{192.168.10.118} & \texttt{192.168.10.119}\\[0pt]
WEB 2 & GARNIER Noé & \texttt{192.168.1.61} & \texttt{192.168.10.120} & \texttt{192.168.10.121}\\[0pt]
WEB 2 & HODIN Dorian & \texttt{192.168.1.62} & \texttt{192.168.10.122} & \texttt{192.168.10.123}\\[0pt]
WEB 2 & JAULT Aurian & \texttt{192.168.1.63} & \texttt{192.168.10.124} & \texttt{192.168.10.125}\\[0pt]
WEB 2 & LAPORTE Clément & \texttt{192.168.1.64} & \texttt{192.168.10.126} & \texttt{192.168.10.127}\\[0pt]
WEB 2 & MARCEL Baptiste & \texttt{192.168.1.65} & \texttt{192.168.10.128} & \texttt{192.168.10.129}\\[0pt]
WEB 2 & MAZINGUE Matis & \texttt{192.168.1.66} & \texttt{192.168.10.130} & \texttt{192.168.10.131}\\[0pt]
WEB 2 & OLLIER Bastien & \texttt{192.168.1.67} & \texttt{192.168.10.132} & \texttt{192.168.10.133}\\[0pt]
WEB 2 & PRADIER Hugo & \texttt{192.168.1.68} & \texttt{192.168.10.134} & \texttt{192.168.10.135}\\[0pt]
WEB 2 & RICHARD Corentin & \texttt{192.168.1.69} & \texttt{192.168.10.136} & \texttt{192.168.10.137}\\[0pt]
WEB 2 & THIERY Marc & \texttt{192.168.1.70} & \texttt{192.168.10.138} & \texttt{192.168.10.139}\\[0pt]
\end{tabular}
\end{center}
\end{document}
