🗒️ Notice : infrastructure et outils
Les travaux pratiques nécessitent une certaine diversité d’outils ainsi qu’une petite infrastructure disponible depuis les salles de TP informatique.
Les différentes notices à votre disposition dans cette partie du site visent à présenter l’essentiel de ce qui sera utilisé tout au long des TPs.
| Tous les TPs sont à réaliser depuis un poste informatique Linux. |
1. Infrastructure Nantes Université
On peut schématiser l’infrastructure à disposition de la manière suivante :
On y trouve :
-
Tout en bas à gauche, les postes de TP physiques à votre disposition en salle informatique. Démarrés sous Linux, ces postes possèdent un certain nombre d’outils utilisés pour le cours (terminal, éditeur de code, navigateur web, client ssh, etc.).
-
En bas à droite, l'environnement de déploiement, dédié à l’enseignement de la conteneurisation. C’est un environnement d’accueil Linux puissant à disposition de tous les étudiants pour apprendre à déployer des logiciels. Voir 🗒️ Notice : environnement de déploiement. Il possède comme nom d’hôte réseau
podman.ensinfo.sciences.univ-nantes.prive(qui peut être simplifié enpodmandepuis une machine de TP). -
En haut à droite, le serveur eduVPN de l’université. Ce service vous permet de connecter votre ordinateur au réseau interne de l’université, et ainsi de pouvoir vous connecter directement à l’environnement de déploiement depuis votre ordinateur.
-
En haut à gauche, le serveur Guacamole de l’université (accessible ici). Ce service vous permet de vous connecter, y compris depuis l’extérieur du campus, à un poste de TP virtuel en tous points identique aux postes de TP physiques. Depuis un poste virtuel, on peut notamment se connecter au serveur de déploiement. Voir Section 3.3.
2. Outils essentiels
Les TPs seront tous réalisés depuis une machine de salle de TP informatique, et vous utiliserez au moins les outils essentiels suivants :
-
Le terminal est l’outil privilégié utilisé tout au long du semestre. Il permet notamment d’utiliser l’utilitaire
ssh(voir item suivant), et d’exécuter de nombreuses tâches liées à la construction des logiciels.Si vous n’êtes pas à l’aise avec l’utilisation d’un terminal sous Linux, il est fortement recommandé de vous familiariser un minimum pour les travaux pratiques. Vous pouvez par exemple regarder le tutoriel de la documentation Ubuntu (qui est la distribution utilisée en salle de TP) ou bien le tutoriel de la documentation Fedora (une autre distribution Linux). -
L’utilitaire
sshpeut être utilisé depuis un terminal, et permet de se connecter à un environnement distant à l’aide du protocole SSH. Nous utiliserons cet outil pour nous connecter sur le serveur de déploiement. -
L’utilitaire
nanoest un éditeur de texte qui peut être utilisé directement depuis un terminal. Il nous sera particulièrement utilise lorsque vous serez connecté sur le serveur de déploiement, car nous ne pourrons interagir avec ce serveur que via le terminal etssh, et nous ne pourrons donc pas ouvrir d’éditeur de texte graphique dans cet environnement. -
Visual Studio Code (aussi installé sous le nom VSCodium sur les postes de salle informatique) sera l’éditeur privilégié pour éditer des fichiers.
3. Pouvoir se connecter à l’environnement de déploiement
Pour des raisons de de sécurité, l’environnement de déploiement n’est accessible que depuis le réseau interne de Nantes Université. Avec cette contrainte, voici les différentes manières possible de s’y connecter.
3.1. Option 1 : physiquement depuis une salle de TP
Il est directement possible de se connecter à distance à l’environnement de déploiement depuis une machine de TP.
3.2. Option 2 : depuis son ordinateur personnel, via eduVPN
Vos ordinateurs personnels ne sont jamais directement sur le réseau interne de l’université, même lorsqu’ils sont connectés au wifi eduroam. Il est cependant possible de les connecter au réseau interne à l’aide du VPN de l’université, appelé eduVPN.
Procédure à suivre :
-
Contacter l’enseignant responsable du cours (par email ou Mattermost), et lui demander d’activer votre accès eduVPN (cet accès n’est pas actif par défaut pour tous les comptes étudiants).
-
Installer eduVPN à partir de cette page.
-
Lancer eduVPN, et démarrer une connexion au serveur
eduvpn.etu.univ-nantes.fr. -
Une page s’ouvre dans votre navigateur web, avec laquelle vous devez vous identifier avec votre compte étudiant.
L’outil devrait alors affiché Connected, ce qui signifie que vous êtes désormais sur le réseau interne de l’université.
Il est alors possible de se connecter au serveur à l’aide de son nom d’hôte complet : podman.ensinfo.sciences.univ-nantes.prive (et non à l’aide du nom d’hôte simplifié podman).
Pour travailler, il vous faudra à minima installer le client OpenSSH sur votre ordinateur (ou autre client SSH, à défaut) :
-
Sous Linux, installez simplement le paquet correspondant, par exemple :
-
sous Ubuntu :
apt install openssh-client -
sous Fedora :
dnf install openssh-clients
-
-
Sous MacOS, vous aurez besoin de HomeBrew, avec lequel vous pourrez installer le paquet nécessaire avec la commande :
brew install openssh -
Sous Windows, il est possible de l’installer via le menu système Optional Features, trouvable sous le nom OpenSSH Client.
3.3. Option 3 : depuis son ordinateur personnel, via Guacamole
Le serveur Guacamole de l’université est un déploiement du logiciel Guacamole, qui permet de se connecter à distance sur un poste de TP virtuel via un simple navigateur web. Dans le déploiement de l’université, ce logiciel permet de se connecter à une poste de TP virtuel qui permet de travailler sans être physiquement dans une salle de TP.
Le service est disponible à cette adresse. On peut alors choisir un poste virtuel, puis se connecter à l’aide de son mot de passe université.
Une notice d’utilisation est également disponible sur le site du Service Commun Informatique (SCI) de l’université : depuis le menu à gauche, se rendre dans Pôle Enseignement, puis Accès à distance, et de là se rendre à la fin de la section TpInfo.
Ce service est ouvert le lundi de 12h15 à 20h et du mardi au vendredi de 8H à 20H.
| Même si l’affichage est un petit peu ralenti et pas toujours réactif, c’est simplement un problème d’affichage. La machine sous-jacente est elle bien rapide et pourra compiler et ou exécuter vos projets sans difficulté. |
4. Générer une clé SSH personnelle
Ce cours fait usage du protocole SSH afin de se connecter à distance au serveur de déploiement (voir 🗒️ Notice : environnement de déploiement).
Pour sécuriser une connexion, le protocole SSH peut reposer sur ce qu’on appelle une clé SSH, qui prend la forme d’une paire de deux fichiers : une clé publique et une clé privée. Ces deux fichiers sont uniques à chaque utilisateur, et s’utilisent de la manière suivante :
-
La clé publique est installée sur un système distant (par exemple un serveur Linux) sur laquelle on souhaite se connecter. Cette installation de clé n’est à faire qu’une seule fois par système distant.
-
La clé privée est utilisée pour prouver au système distant que nous sommes bien le propriétaire de cette clé publique.
| Pour mieux comprendre tout ce fonctionnement, ne pas hésiter à se renseigner sur la cryptographie asymétrique, qui est la technique à l’œuvre ici. |
Pour générer sa clé SSH personnelle unique, on exécute la commande suivante depuis un système Linux :
$ ssh-keygen -t ecdsa
Suite à cette commande, un message s’affiche qui débute par :
Enter file in which to save the key
Il n’est pas nécessaire de saisir un fichier/chemin, vous pouvez simplement appuyer sur Entrée pour qu’il utilise le chemin par défaut (qui est le chemin souhaité de toute manière).
|
L’option |
Une phrase de passe (en anglais, passphrase) de protection de clé, optionnelle, est alors demandée. Une phrase de passe permet de chiffrer votre clé privée SSH, afin d’éviter à quelqu’un qui s’empare malicieusement de votre clé privée de pouvoir s’en servir. Dans ce cas, il faudra saisir la phrase de passe de la clé à chaque connexion.
| Si on souhaite ne plus avoir à taper de mot de passe lors d’une connexion SSH, on peut choisir une phrase de passe vide − ce choix est tout à fait valide dans le cadre de ce cours, les enjeux de sécurité étant faibles. |
Deux fichiers sont alors générés aux emplacements suivants de votre répertoire utilisateur :
-
La clé publique :
.ssh/id_ecdsa.pub -
La clé privée :
.ssh/id_ecdsa
Vous êtes désormais prêt pour utiliser votre clé SSH, que ce soit pour une connexion à distance ou pour un usage avec Git !