Projet d'informatique pour l'entreprise

Tresor shell

Projet

Pour ce projet, vous allez

  • utiliser quelques commandes linux,
  • travailler avec git,
  • utiliser Docker,
  • faire un Makefile.

Note
Même si les parties sont connectées entre elles, les étapes du projet sont indépendantes. Ainsi, vous pouvez traiter les parties suivantes du projet même si votre chasse au trésor dans le terminal n’est pas totalement fructueuse.

Installation

Avant de vous lancer dans le projet, il vous faut un environnement Linux (vous pouvez utiliser le sous-système Linux pour Windows ou travailler sous Mac).

Information
Les instructions d’installation sont données pour Ubuntu ou Debian. Si vous utilisez un autre système, adaptez les commandes d’installation.

Python

Vérifiez que python3 est bien installé dans cet environnement. Si ce n’est pas le cas, tapez

sudo apt update
sudo apt install python3.9

Vérifiez que la version de python3 est 3.7, 3.8, 3.9, 3.10 ou 3.11

python3 -V

Attention
Ce n’est pas possible de faire ce projet si vous utiliser python3.12.

Outils supplémentaires

Il faut quelques outils pour récupérer et extraire l’archive.

sudo apt update
sudo apt install wget zip

Télécharger

Recopiez, puis exécutez la commande suivante.

sh <(wget -q https://upinfo.univ-cotedazur.fr/assets/im/tresor-shell/getprojet.sh -O -)

Consignes

L’archive extraite va vous permettre de faire une chasse au trésor dans le terminal, à la recherche d’indices. Mais ce n’est pas la totalité du projet.

Github

  • Créez un dépôt github privé.
  • Ajoutez les enseignants du cours comme collaborateurs : comptes mpelleau et obaldellon.

Note
Si vous ne nous ajoutez pas comme collaborateurs, nous ne pourrons pas aller voir votre projet. Vous aurez donc 0 sur cette partie.

Dans votre dépôt git

Pour obtenir une note maximale, vous devez rendre les fichiers suivants dans votre dépôt git :

  • les fichiers indices collectés au fil de la chasse au trésor (ce sont des fichiers markdown) placés dans le répertoire indices,
  • une action github qui permet de générer automatiquement un fichier archive indices.zip contenant tous les indices,
  • le fichier index.md fourni,
  • un fichier rapport.md qui contient les informations suivantes :
    • votre nom et votre prénom,
    • l’adresse de votre dépôt github,
    • les commandes tapées pour répondre aux questions,
    • le fichier image éventuellement utilisé pour une question,
  • un fichier Dockerfile.

Fichiers fournis

Deux fichiers à récupérer sont fournis sur Moodle :

  • Un fichier index.md correspondant à la page principale de votre serveur web. Il faudra convertir ce fichier markdown en fichier html et le mettre dans le bon répertoire.
  • Un fichier Dockerfile permettant de lancer un serveur web apache.

La commande pour lancer l’image correspondant au Dockerfile est la suivante :

 docker run -dt -p 8080:80 <votre_image>

Votre serveur sera accessible sur votre navigateur web (firefox, chrome, etc.) à l’adresse http://localhost:8080/

Il faudra compléter ce fichier Dockerfile afin de respecter les consignes ci-dessous.

Le fichier Dockerfile

Le fichier Dockerfile doit permettre de créer une image :

  • avec un serveur apache
  • avec les fichiers markdown et images de votre projet dans le répertoire /root/source
  • et dans ce même répertoire /root/source un makefile permettant de :
    • générer un fichier indices.md contentant tous les indices concaténés,
    • convertir avec pandoc les trois fichiers markdown (index, indices et rapport) en fichiers web (html) dans le bon répertoire

Ce makefile devra permettre de construire chaque fichier indépendemment.

Partie gestion de projet

  • Créer des issues correspondants aux différentes indications à trouver.
  • Créer des issues pour les parties Dockerfile et actions.
  • Mettre à jour les fichiers indices et le rapport au fur et à mesure de la collecte des indices.
  • Fermer correctement les issues correspondantes.
  • Créer un tag intitulé rendu (qui donne une release sur github) pour le rendu final de votre projet.

Rendu sur moodle

Vous devez rendre les fichiers suivants sur moodle :

  • commandes.log,
  • rapport.md.

Date

Date limite
Vous devez rendre votre projet au plus tard le dimanche 14 avril 2024.

Chasse au trésor dans le shell

Description

Les indices sont des fichiers textes markdown. Voici par exemple le premier indice (cliquer).

Numéro secret

Attention
Veuillez utiliser le lien donné depuis moodle pour avoir votre numéro pour le projet.

Information
Selon mes informations, vous êtes prénom nom, votre numéro pour le projet est id.

Indice 1

Indice 1 : La chasse commence !

man

La première commande à connaître est man, qui est un raccourci pour manuel. Taper man [commande] vous donnera une page d’aide (appelée manpage) pour la plupart des commandes.

ls

La commande suivante à connaître est ls (list). Taper man ls et lire la description. Appuyer sur q pour quitter. Puis taper ls, ce qui devrait donner

fonctions  generer_probleme.py  images  indice_suivant.py  pytransform

S’il y a de la couleur, les répertoires sont en bleu, tous les autres sont des fichiers.

cd

Une autre commande utile est cd (change directory) pour changer de répertoire. Remarque : man cd ne fonctionne pas. Toutes les commandes n’ont pas de manpage. Mais on peut utiliser

cd --help

pour avoir de l’aide. Cela dit, changer de répertoire est simple : il suffit de taper

cd indices

pour se placer dans le répertoire indices. Pour remonter d’un niveau, taper

cd ..

Pour revenir au départ, taper

cd ~/tresor-shell
générer les indices

Retourner dans ~/tresorshell. Puis taper

Attention

./generer_probleme.py NUM

NUM est votre numéro secret.

Information
./generer_probleme.py id
car id est votre numéro secret..

Si vous cd vers indices puis tapez ls, vous verrez qu’il y a beaucoup de répertoires d’indices. La plupart contient de faux indices. Vous allez rechercher les vrais indices.

En utilisant, cd, déplacez-vous vers indices/12345 puis tapez ls. Vous devriez y trouver un seul fichier appelé indice.

cat

Enfin, il faudra lire les indices. Consultez d’abord la page de manuel de cat puis tapez

cat indice

L’indice s’affichera dans le terminal. La suite de la chasse se passera dans le terminal.

Tresor shell