% Preamble
\documentclass[a4paper,12pt]{article}

% Packages
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{eurosym}
\usepackage{epsfig}
\usepackage{stmaryrd}

% Title
\title{Pente : Mise en place du projet}
\author{D.Moreaux}

% Document
\begin{document}
\maketitle
\section{Installation du serveur}
On commence par créer une machine virtuelle sous Debian (télécharger le CD netinst PC 64bits).

Lors de l'installation, préciser l'anglais (US) comme langue d'installation et la locale 
anglaise US\footnote{Lorsque l'on utilise le français, certaines interfaces texte posent
problème parce que la traduction s'avère trop longue. On trouve cela par exemple dans
Midnight Commander}.

On utilisera les valeurs par défaut à l'exception de la sélection des logiciels où il faudra
décocher Debian Desktop environment et GNOME (installation en mode texte) et cocher SSH server.

Une fois l'installation terminée, pensez à installer \verb|mc| pour plus de facilité dans
l'utilisation de linux à partir de la console VirtualBox.

Au niveau de Virtual Box, l'interface réseau sera en mode NAT et il faudra ajouter des règles de
port forwarding pour permettre d'accéder à la machine virtuelle à partir du PC Hôte.

\section{Configuration SSH}
Configurer une règle "Port Forwarding" précisant le port Hôte comme 8022 et le port Guest comme 22.
Si l'adresse IP de l'hôte est laissée vide, toutes les adresses locales seront acceptées (y compris
l'adresse localhost 127.0.0.1).

SSH peut travailler avec un mot de passe ou avec un fichier cryptographique (RSA ou DSA). On se
contentera ici du mot de passe.

A niveau de CLion, on configurera la connexion SSH à partir de l'écran de création de projet. Pour
cela, on choisira Customize et on cliquera sur All Settings...

On choisira  Tools $\rightarrow$ SSH Configuration, il faudra ajouter une connexion SSH à destination de 
la VM. Penser à changer le port pour mettre 8022 et à tester la connexion avant de fermer la fenêtre.

On pourra par la suite  utiliser Tools $\rightarrow$ Start SSH Session pour ouvrir une session SSH sur 
le serveur. La fenêtre terminal s'ouvrira dans le bas de la fenêtre de CLion et on pourra y entrer 
directement des commandes.

A noter que cela peut également être utilisé avec un serveur distant (par exemple chez OVH).

\section{Configuration Remote Toolchain}
Pour configurer une Remote Toolchain, commencer par installer les packages nécessaires sur la machine virtuelle.

Il faudra ainsi installer \verb|cmake| (l'outil permettant de gérer le projet), \verb|rsync| (l'outil de
transfert de fichiers), \verb|gdb| et \verb|g++| (les outils de débug et de compilation C++, le
compilateur C aura été installé automatiquement quand cmake aura été installé).

Pour configurer la Remote Toolchain sur CLion, à partir de l'écran de création de projet, cliquer sur
Customize et ensuite sur All Settings... 

Il faut ensuite se rendre dans Build, Execution, Deployment $\rightarrow$ Toolchains et ajouter une nouvelle 
Toolchain de type Remote Host. Selectionner la configuration SSH dans la ligne Credentials. On déplace cette 
toolchain en tête de liste pour la définir comme Toolchain par défaut.

On pourra enfin créer le projet sur lequel on veut travailler

Il est nécessaire de configurer le déploiement en précisant la connexion SSH et dans le mapping, indiquer 
le nom du répertoire distant (/home/student/nomdeprojet) pour le projet, fermer le projet et le réouvrir. 
Terminer par File $\rightarrow$ Reload CMake Project...

Ce dernier point (édition mapping, fermer et réouvrir le projet et Reload CMake Project...) devra être fait
pour chaque projet.

\end{document}