% 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{.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 .pve.virtuiut.online; location / { proxy_pass http://: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}