(GRP A7) : Anas Sibarni, Anas Achouch, Mohamed El Amine Yahiaoui
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 mémoire de la machine virtuelle
Configuration du stockage 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.
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
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 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 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
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
id -nG user
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
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.
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
Voir : Caractéristiques de la machine virtuelle
Récapitulatif de la machine virtuelle
Fichiers de pré-configuration
Récupérer l’archive autoinstall_Debian.zip sur Moodle et décompresser-là dans le répertoire de votre machine virtuelle.
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
Écran après autoinstallation
ajouter user à sudo : sh usermod -aG sudo user
Récupérer l’archive autoinstall_Debian.zip sur Moodle et décompresser-là dans le répertoire de votre machine virtuelle.
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
Insérer le fichier S203_Debian12.viso dans le lecteur optique (cd/dvd) de votre machine virtuelle
Démarrer la machine virtuelle et laissez l’installation se dérouler
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
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
Ajouter les paquets suivants :
sudo : sinon la gestion sudo est inutile
git, sqlite3, curl : pour préparer l’installation de la semaine prochaine
bash-completion : va vous simplifier grandement l’écriture des lignes de commande
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
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.
Essayer sur un pc de salle de TP.
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.
Tout d’abords, installez les paquets gitk et git gui
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
C’est aussi une interface graphique pour le dépot .
Il se lance avec la commande :
gitk
Interface gratuite ungit
Il représente les dépôts git sous forme d’arbres pour lesquels chaque nœud correspond à un commit.
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 |
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
Ajout d’une redirection de port
Redirection de port ajoutée
Questions 1. À propos de 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
Il est similaire à GitHub, Bitbucket et GitLab. Source
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
Gitea est un fork du logiciel Gogs. Oui, ce logiciel existe encore. Source
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
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
paramétrage du compte adminstateur
cliquer ensuite sur installer gitea et l’installation et maintenant terminée !
page d’acceuil de gitea
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
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
1er test :
on crée un nouveau dépot depuis l’interface web de gitea :
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
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