🗒️ 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 :

infra.drawio
Figure 1. Infrastructure de Nantes Université pour les TPs

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é en podman depuis 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 ssh peut ê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 nano est 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 et ssh, 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 :

  1. 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).

  2. Installer eduVPN à partir de cette page.

  3. Lancer eduVPN, et démarrer une connexion au serveur eduvpn.etu.univ-nantes.fr.

  4. 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 :

[sur votre poste de travail local]
$ 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 -t ecdsa s’assure qu’on génère une clé à l’aide d’un standard cryptographique puissant et moderne, à savoir ECDSA.

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 !