SAÉ 2.03 - GRP A7

Table des matières

Semaine S1 de la SAÉ

Formation de notre équipe

(GRP A7) : Anas Sibarni, Anas Achouch, Mohamed El Amine Yahiaoui

Préparation d’une machine virtuelle Debian

Prérequis matériel de la machine physique

Préparation de la machine virtuelle

Caractéristiques de la machine virtuelle

Suivez les indications de cette image pour configurer votre machine virtuelle (en ajustant les chemin “Folder” si besoin):

Configuration de la machine virtuelle
Configuration de la machine virtuelle

Configuration de la mémoire de la machine virtuelle
Configuration de la mémoire de la machine virtuelle

Configuration du stockage de la machine virtuelle
Configuration du stockage de la machine virtuelle

Récapitulatif de la machine virtuelle
Récapitulatif de la machine virtuelle

  • Que signifie “64-bit” dans “Debian 64-bit” ?

    La largeur des registres est de 64 bits sur les nombres entiers. (Peut gérer plus de 4GB de RAM)
    Source

  • Quelle est la configuration réseau utilisée par défaut ?

    La configuration réseau par défaut est IPV6.

  • Quel est le nom du fichier XML contenant la configuration de votre machine ?

    Le nom du fichier XML contenant la configuration de notre machine est config.xml
    Source

  • Sauriez-vous le modifier directement ce fichier de configuration pour mettre 2 processeurs à votre machine ? > Ouvrir le fichier config.xml en exécutant la commande nano config.xml puis modifier le nombre de processeurs.

Installation de l’OS

Pour installer l’OS Debian, télécharger le fichier.iso sur leur site, et insérer ce fichier comme ci-dessous :
Insertion du fichier.iso
Insertion du fichier.iso

  • Qu’est-ce qu’un fichier iso bootable ?

    C’est un fichier qui doit s’exécuter au démarrage de la machine

  • Qu’est-ce que MATE ? GNOME ?

    MATE est un fork de GNOME (un fork est un nouveau référentiel qui partage le code et les paramètres de visibilité avec le référentiel « en amont » d’origine) ; ce sont des environnement de bureau simples d’utilisation.
    Sources : source1, source2

  • Qu’est-ce qu’un serveur web ?

    Un « serveur web » peut faire référence à des composants logiciels (software) ou à des composants matériels (hardware) ou à des composants logiciels et matériels qui fonctionnent ensemble.
    Schéma d’un serveur web
    Schéma repésentant le fonctionnement d’un serveur web
    Source

  • Qu’est-ce qu’un serveur ssh ?

    Le protocole Secure Shell (SSH) est une méthode permettant d’envoyer en toute sécurité des commandes à un ordinateur sur un réseau non sécurisé. SSH a recours à la cryptographie pour authentifier et chiffrer les connexions entre les appareils.
    Schéma d’un serveur SSH
    Schéma représentant le fonctionnement d’un serveur SSH
    Source

  • Qu’est-ce qu’un serveur mandataire ? > Un serveur mandataire filtre les sites web que vous consultez. Il reçoit les requêtes de votre navigateur pour récupérer les pages web demandées avec leurs éléments et, dans le respect des règles édictées, les transmets ou non. Ils sont fréquemment utilisés dans le domaine professionnel et les points d’accès sans fil publics pour contrôler quels sites peuvent être consultés, pour interdire l’accès à Internet sans identification, ou pour effectuer des contrôles de sécurité de certains sites répertoriés.
    > Source

Préparation du système

Accès sudo pour user

Passer en mode console sur la vm (ctrl+alt+f1), si fonctionne pas, dans terminal exécuter su - puis mettre mot de passe de root (indiquer en index du sujet semaine 1 sae)
Ensuite, exécuter : usermod -aG sudo user pour ajouter user aux sudo
Visualiser tous les group du pc : getent group
Source

  • Comment peut-on savoir à quels groupes appartient l’utilisateur user ? > Exécuter la commande suivante : id -nG user
    > Source

Installation des suppléments invités

  • Quelle est la version du noyau Linux utilisé par votre VM ?

    user@serveur:~$ uname -r
    6.1.0-31-amd64

    La version du noyau Linux est 6.1.0
    Source

  • À quoi servent les suppléments invités ? Donner 2 principales raisons de les installer.

    Les suppléments invités sont une sorte de pack logiciel à installer sur la machine virtuelle pour optimiser son fonctionnement et ajouter de nouvelles fonctionnalités
    2 principales raisons de les installer : possibilité de d’avoir une presse-papier partagée entre la vm et l’ordinateur hôte ; pouvoir mettre la vm en plein écran
    Source

  • À quoi sert la commande mount (dans notre cas de figure et dans le cas général) ? > La commande mount permet de demander au système d’exploitation de rendre un système de fichiers accessible, à un emplacement spécifié (le point de montage). En outre, vous pouvez utiliser la commande mount pour générer d’autres arborescences de fichiers qui sont constituées de répertoires et de montages de fichiers.
    > Dans notre cas, la commande mount est utilisée pour que notre système d’exploitation prend en compte ce qu’il y a dans le lecteur CD de la VM (notamment ici pour les suppléments invités).
    > Source

À propos de la distribution Debian

Quelques questions

  • Qu’est-ce que le Projet Debian ? D’où vient le nom Debian ? > Le nom Debain vient du nom du foncdateur de Debian Ian Murdock, et de sa femme, Debra
La maintenance
  • Il existe 3 durées de prise en charge (support) de ces versions : la durée minimale, la durée en support long terme (LTS) et la durée en support long terme étendue (ELTS). Quelle sont les durées de ces prises en charge ?

    Durée minimale LTS ELTS
    3 ans 5 ans 10 ans
  • Pendant combien de temps les mises à jour de sécurité seront-elles fournies ? > L’équipe en charge de la sécurité prend normalement en charge la distribution stable pendant trois années après sa publication. Il n’est pas possible de prendre en charge trois distributions, c’est déjà bien assez difficile avec deux.

Nom générique, nom de code et version
  • Combien de versions au minimum sont activement maintenues par Debian ? Donnez leur nom générique (= les types de distribution).

    Debian a toujours au moins trois versions activement entretenues : stable , testing et unstable

  • Chaque distribution majeure possède un nom de code différent. Par exemple, la version majeure actuelle (Debian 12) se nomme bookworm. D’où viennent les noms de code données aux distributions ?

    Quand une distribution Debian est en cours de développement, elle n’a aucun numéro de version mais un nom de code. Le but de ces noms de code est de faciliter la copie sur les miroirs des distributions Debian

  • L’un des atouts de Debian fut le nombre d’architecture (≈ processeurs) officiellement prises en charge. Combien et lesquelles sont prises en charge par la version Bullseye ?

    Les architecture supporter par Debian sont au nombre de 10 officielement, voici les arcitechture supporter officielement:

    • PC 64 bits (amd64)
    • ARM64 bits (AArch64)
    • ARM EABI (armel)
    • ARM avec unité de calcul flottant (armhf)
    • PC 32 bits (i386)
    • MIPS (grand boutiste)
    • MIPS (petit boutiste)
    • MIPS 64 bits (petit boutiste)
    • Processeurs POWER
    • IBM System
      Source
  • Première version avec un nom de code

    ◦ Quel a était le premier nom de code utilisé ? buzz
    ◦ Quand a-t-il été annoncé ? 17 juin 1996
    ◦ Quel était le numéro de version de cette distribution ? 1.1

  • Dernière nom de code attribué > ◦ Quel est le dernier nom de code annoncé à ce jour ? bookworm
    > ◦ Quand a-t-il été annoncé ? 10 juin 2023
    > ◦ Quelle est la version de cette distribution ? 12

Installation préconfigurée

Récupérer et préparer les fichiers nécessaires

Faire une nouvelle machine avec les caractéristiques suivantes

Voir : Caractéristiques de la machine virtuelle

Récapitulatif de la machine virtuelle
Récapitulatif de la machine virtuelle

Fichiers de pré-configuration

  1. Récupérer l’archive autoinstall_Debian.zip sur Moodle et décompresser-là dans le répertoire de votre machine virtuelle.

  2. Remplacer la chaîne @@UUID@@ par un identifiant unique universel. Le plus simple est d’exécuter la commande ci-dessous en étant placé dans le même répertoire que votre fichier S203-Debian12.viso.

sed -i -E "s/(--iprt-iso-maker-file-marker-bourne-sh).*$/\1=$(cat /proc/sys/kernel/random/uuid)/" S203-Debian12.viso
  1. Insérer le fichier S203_Debian12.viso dans le lecteur optique (cd/dvd) de votre machine virtuelle ;
  2. Démarrer la machine virtuelle et laissez l’installation se dérouler.
  3. Testez les ajouts invités en vous connectant (user/user, ou root/root) puis en modifiant la taille de la fenêtre

Écran après autoinstallation
Écran après autoinstallation

ajouter user à sudo : sh usermod -aG sudo user

Fichiers de pré-configuration
  1. Récupérer l’archive autoinstall_Debian.zip sur Moodle et décompresser-là dans le répertoire de votre machine virtuelle.

  2. Remplacer la chaîne _@@UUID@@_ par un identifiant universel. Le plus simple est d’exécuter la commande ci-dessous en étant placé dans le même répertoire que votre fichier S203-Debian12.viso :

    sed -i -E "s/(--iprt-iso-maker-file-marker-bourne-sh).*$/\1=$(cat /proc/sys/kernel/random/uuid)/" S203-Debian12.viso
  3. Insérer le fichier S203_Debian12.viso dans le lecteur optique (cd/dvd) de votre machine virtuelle

  4. Démarrer la machine virtuelle et laissez l’installation se dérouler

  5. Testez les ajouts invités en vous connectant (user/user, ou root/root) puis en modifiant la taille de la fenêtre

Écran connexion après autoinstallation
Écran connexion après autoinstallation

Questions : Ajustement de la pré-configuration

Modifier votre configuration (et recommencez l’installation) afin de :

  • Ajouter le droit d’utiliser sudo à l’utilisateur standard

    Dans le fichier preseed-fr.cfg ajouter sudo à la ligne

    d-i passwd/user-default-groups string audio cdrom video sudo
  • Installer l’environnement MATE

    Ajouter cette ligne dans le fichier preseed.cfg :

    ## Installer environnement MATE
    /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet

    Source

  • Ajouter les paquets suivants :

    1. sudo : sinon la gestion sudo est inutile

    2. git, sqlite3, curl : pour préparer l’installation de la semaine prochaine

    3. bash-completion : va vous simplifier grandement l’écriture des lignes de commande

    4. neofetch : pas très utile

    Ajouter la ligne suivant pour installer tous ces paquets :

    d-i pkgsel/include string sudo, git, sqlite3, curl, bash-completion, neofetch

    Source

Problèmes rencontrés

Après installation sur ordinateur personnel de l’archive auto_install.zip sur moodle, et mise en commentaire de la ligne concernant le proxy dans le fichier preseed.cfg, je n’arrivais pas à lancer une installation automatique sur mon pc.

Solutions envisagées

Essayer sur un pc de salle de TP.

Semaine S2 de la SAÉ

Rapport et Readme

La semaine 2 consiste en la prise en main d’un outil de balisage léger, dans notre cas Markdown et pandoc, et à mettre en place les fichiers et les extensions afin de garantir une bonne écriture des fichiers. Le résultat de la semaine 2 est constitué des fichiers en eux-mêmes.

Semaine S3 de la SAÉ

Interface graphique pour git

Tout d’abords, installez les paquets gitk et git gui

  • Qu’est-ce que le logiciel gitk ? Comment se lance-t-il ?

gitk est un navigateur de dépôt graphique, le premier de son genre. Il peut être considéré comme un encapsuleur graphique pour git log . Il permet d’explorer et de visualiser l’historique d’un dépôt.

Il se lance avec la commande :

gitk
  • Qu’est-ce que le logiciel git-gui ? Comment se lance-t-il ?

C’est aussi une interface graphique pour le dépot .

Il se lance avec la commande :

gitk

Installons autre chose et comparons

Interface gratuite ungit

  • Pourquoi avez-vous choisi ce logiciel ?

Il représente les dépôts git sous forme d’arbres pour lesquels chaque nœud correspond à un commit.

  • Comment l’avez vous installé ?

avec cette commande d’abords pour installer nodes js :

sudo apt install nodejs npm -y

puis celle-çi pour installer ungit :

npm install -g ungit

Comparaison avec gitk et git gui

Critère Gitk Git GUI Ungit
Type d’outil Visualisation de l’historique Interface complète pour Git Interface web pour Git
Installation Inclus avec Git Inclus avec Git Nécessite Node.js
Interface Minimaliste, basé sur Tk Basique, en Tk Moderne et intuitive (web)
Utilisation Explorer les commits et branches Faire des commits, merges, push/pull Interface graphique simplifiée pour Git
Facilité d’utilisation Moyenne (assez brut) Plus simple mais limité Très accessible
Support du staging Non Oui Oui
Support des merges Visualisation uniquement Oui, mais basique Oui, très visuel
Personnalisation Non Non Oui, via plugins et options web
Multiplateforme Oui Oui Oui (via navigateur)
Dépendances Git et Tk Git et Tk Node.js et navigateur

Semaine S4 de la SAÉ

1. Préliminaire : redirection de port

Le mode réseau par défaut de nos machines virtuelles est le mode NAT. Il permet de faire la redirection dont nous avons besoins ici.

Sur VirtualBox, on peut utiliser l’interface graphique et la configuration de votre VM pour ajouter des redirections de port. Regardez la figure ci-dessous et réalisez la redirection du port 3000 de votre machine hôte (= la machine physique où est installée VirtualBox et votre VM) vers le port 3000 de votre VM.

Configuration réseau de la machine virtuelle
Configuration réseau de la machine virtuelle

Ajout d’une redirection de port
Ajout d’une redirection de port

Redirection de port ajoutée
Redirection de port ajoutée

2. Installation de Gitea

Questions 1. À propos de Gitea

  • Qu’est-ce que Gitea ?

Gitea est un service de développement de logiciels tout-en-un indolore. Il comprend l’hébergement Git, la révision du code, la collaboration d’équipe, le registre des paquets et l’IC/CD. Source

  • À quels logiciels bien connus dans ce domaine peut-on le comparer (en citer au moins 2) ?

Il est similaire à GitHub, Bitbucket et GitLab. Source

  • Qu’est-ce qu’un fork (dans le domaine du développement logiciel) ?

Un fork est une copie d’un projet logiciel existant à un moment donné pour permettre à quelque-un d’ajouter ses propres modifications au projet. Source

  • De quel logiciel Gitea est-il le fork ? Ce logiciel existe-t-il encore ?

Gitea est un fork du logiciel Gogs. Oui, ce logiciel existe encore. Source

2.1. Installation de gitea

L’installation de gitea donnée par la documentation n’explique pas toutes les subtilités ce qui nous a beacoup bloquées nous allons donc essayer dans ce rapport de donner un maximum d’information

2.1.1. Installation du binaire

Tout d’abords on installe les binaires de gitea dans le dossier /usr/local/bin/ (ici la version 1.23.5 avec cette commande) :

wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/1.23.5/gitea-1.23.5-linux-amd64

on ajoute la possibilité de l’éxecuter avec cette commande :

chmod +x /usr/local/bin/gitea

On verifie aussi avant de passer à la suite que la version de git est bien superieur à 2.0 et mettre à jour si ce n’est pas le cas

On va maintenant creer un utilisateur pour lancer gitea que nous allons appeler ici git grâce à cette commande :

adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

On creer aussi la bonne structure de repertoire :

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

Avant de lancer il faut configurer le dossier de lanement de gitea :

export GITEA_WORK_DIR=/var/lib/gitea/

on se place maintenant en que git :

sudo su - git

On peut maintenant lancer gitea avec la commande suivante :

GITEA_WORK_DIR=/var/lib/gitea /usr/local/bin/gitea web -c /etc/gitea/app.ini

On va maintenant dans le naviguateur pour la configuration à l’adresse suivante :

http://localhost:3000/

la configuration est la suivante :

Utilisation de la base de données sqlite3
Utilisation de la base de données sqlite3

paramétrage du compte adminstateur
paramétrage du compte adminstateur

cliquer ensuite sur installer gitea et l’installation et maintenant terminée !

page d’acceuil de gitea
page d’acceuil de gitea

2.1.2 Mise à jour

  • Donnez la version que vous avez installé et la commande permettant d’obtenir cette information.

La version installé est la version 1.23.5 on peut le savoir grâce à la commande suivante :

gitea --version

Ce qui retourne :

Gitea version 1.23.5 built with GNU Make 4.3, go1.23.7 : bindata, sqlite, sqlite_unlock_notify
  • Comment faire pour mettre à jour le binaire de votre service sans devoir tout reconfigurer ? Essayez en mettant à jour vers la version 1.24-dev.

pour cela il suffit simplement d’installer la version superieur que l’on souahite avec la commande suivante :

sudo wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/main-nightly/gitea-main-nightly-linux-amd64

Ce qui retourne :

Gitea version 1.24.0+dev-474-ge1bba9c1a2 built with GNU Make 4.3, go1.24.1 : bindata, sqlite, sqlite_unlock_notify

2.2. Tests d’utilisation

1er test :

on crée un nouveau dépot depuis l’interface web de gitea :

création du dépot
création du dépot

2ème test :

on migre le dépot on se trouve ce rapport vers gitea grâce à la fonctionnalité présente :

page de migartion du dépot sae2.03
page de migartion du dépot sae2.03

3ème test :

test de la migration du dépot de développpement partagé entre les membres du groupes :

ajout du dépot dev-oo
ajout du dépot dev-oo

  • Ces test fonctionne tous ce qui signifie que le serveur a bien été configuré et qu’il est prêt à l’utlisatation concluant ainsi ce rapport !