Travaux pratiques : Travail en réseau sous Linux, Git
Connexions réseaux
- Configurer une clef SSH et essayer de vous connecter à
différentes machines. Si vous êtes sur une machine de la salle de
TP, se connecter à d'autres machines de la salle. Si vous êtes
sur votre machine personnelle, configurer un rebond via
sas.eleves.ens.fr avant d'accéder à une machine de
la salle de TP. Faire en sorte de ne pas avoir besoin de taper
son mot de passe ou le mot de passe de la clef à chaque
connexion.
- Depuis une machine du réseau de l'ENS, demander un transfert de
zone DNS (type de requête AXFR) au serveur de nom de domaine de
l'ENS. Stocker le résultat dans un fichier et l'analyser avec
cut, sort, grep, etc.
- Mettez en place, avec votre voisin, une communication
bidirectionnelle entre sa machine et la vôtre pour discuter : l'un
d'entre vous démarre un serveur TCP sur un certain port, l'autre
s'y connecte. Pour que cela fonctionne, il faut qu'aucun pare-feu
n'empêche les connexions entre les deux machines.
- Sur une machine de la salle de TP, lancer un petit serveur Web
qui ne répond qu'aux connexions locales :
python3 -m http.server --bind 127.0.0.1 8000.
Depuis votre propre machine, y accéder dans votre navigateur en
redirigeant un port local vers ce serveur au travers de SSH
(option -L), en passant par le rebond configuré à la
première question. Vérifier avec ss ou
curl, des deux côtés, quel processus écoute sur quel
port.
Branchements Git
- Faire les exercices de
Learn Git
Branching (en
particulier les trois premières séries d'exercices du groupe
Principal
et la première série d'exercice du groupe Remote).
Git en pratique
Pour cet exercice, former un groupe de 2 à 4 personnes.
- Créer chacun un compte sur GitHub si
vous n'en avez pas déjà un.
- L'un des membres de chaque
groupe (le mainteneur) va forker
le dépôt https://github.com/PierreSenellart/matrix_tutorial
contenant le code de la solution
du TP de lundi, dans son propre
espace. Partager ce dépôt en
lecture et écriture avec les
autres membres du groupe.
- Chaque membre du groupe doit maintenant cloner en local une
copie de ce fork, puis ajouter le dépôt initial comme un
remote
upstream.
- Au sein de chaque groupe, répartissez-vous les tâches d'ajouter
des fonctionnalités à ce dépôt :
- Multiplication de matrices
- Exponentiation rapide de matrices
- Multiplication de matrices par un scalaire
- Ajout de tests unitaires pour les fonctions n'en ayant pas
- Ajout de documentation dans le fichier
README.md
- Configuration de GitHub
Actions afin qu'à chaque commit
envoyé sur le serveur, le code soit
compilé et les tests validés.
- Ou toute autre fonctionnalité qui vous
vienne en tête
Chacun des développements se fait dans des branches spécifiques à
cette fonctionnalité. Une fois une
fonctionnalité finalisée, envoyer sur le serveur. Le mainteneur
fusionne ensuite les changements dans la branche principale.
- En fin de TP, faire une pull request pour demander
d'intégrer les changements au dépôt
upstream.
Vous pouvez utiliser un assistant fondé sur un modèle de
langage (dans l'éditeur ou en ligne de commande) pour relire votre
code ou rédiger vos messages de commit, mais l'objectif de ce TP est
de pratiquer vous-même les commandes git : exécutez-les à la main.