Serveur Clafoutis: comment installer Ubuntu 24.04 sur un Raspberry Pi 4B ou 5
Introduction
- Encore un autre tutoriel sur le sujet? Oui mais… Oui, c'est un autre tutoriel mais avec une vision différente: on part d'un ordinateur vierge et on veut se rendre à un serveur capable de faire des analyses bio-informatiques. En général, ce qui sera présenté ici se fait la plupart du temps sur 2 ou 3 tutoriels distincts, ce que l'on veut éviter. Considérez le comme un méta-tutoriel
- Nos objectifs à la fin de ce tutoriel:
- Le serveur fonctionne sans écran, clavier et souris attaché;
- Il a une adresse réseau statique sur le réseau local;
- Il utilise le système de fichiers partagés NFS pour accéder aux fichiers de données.
Informations préliminaires
- Nos informations préliminaires et nos pré-requis:
- Notre routeur a comme adresse locale
192.168.1.1
(évidemment, il est possible que la vôtre soit différente alors ajuster les instructions qui suivent en conséquence);
- Le service DHCP du routeur est actif (nécessaire pour l'installation initiale);
- Votre NAS à une adresse IP statique; ici pour l'exemple, disons
192.168.1.5
; - Votre NAS fonctionne et possède une série de répertoires partagés via NFS:
/shares/biodata
sera celui qui contiendra toutes les données;/shares/rpi-home
sera celui qui contiendra les répertoires des usagers;/shares/rpi-opt
sera celui qui contiendra toutes infos Impilo, y compris les applications;
- On décide que l'adresse statique du serveur Clafoutis sera
192.168.1.10
; il portera le nom deminion01
. - On télécharge la dernière version du logiciel Raspberry Pi Imager
Procédure
Étape 1: Démarrage initial
- On branche le Raspberry Pi 4B ou 5 dans le commutateur à l'aide d'un cable Ethernet; on ne branche pas tout de suite l'alimentation électrique.
- Sur votre poste de travail, démarrez le logiciel Raspberry Pi Imager et utilisez la procédure décrite ici pour installer l'OS sur la carte microSD ou la clé USB3.
- La toute dernière version du logiciel Raspberry Pi Imager (en date de juin 2022) permet maintenant d'utiliser certains paramètres importants à l'installation en appuyant sur la combinaison de touche
Cmd+Shift+X
ouCtrl+Shift+X
; profitons-en! - Dans la fenêtre qui est apparue, nous avons deux onglets importants:
- Dans l'onglet Général, inscrivez les infos suivantes:
- Nom d'hôte : votre nom préféré alors
minion01
; - Définir nom d'usager et mot de passe : utilisons la combinaison
bioubuntu
/bioubuntu
à des fins de démonstration. - Définir les réglages locaux : sélectionnez votre fuseau horaire et le format du clavier.
- Dans l'onglet Services, inscrivez les infos suivantes:
- Activer SSH : coché la case et cocher le bouton Utiliser un mot de passe pour l'authentification;
- Cliquer sur Enregistrer
- Pour les trois boutons blancs, sélectionner:
- Votre modèle de Raspberry Pi (5 ou autre);
- Votre système d'opération en utilisant Ubuntu Server 64 bits 24.04 dans la section Other general-purpose OS » Ubuntu;
- Votre stockage, soit la carte microSD ou bien votre clé USB3.
- Une fois ça fait, cliquer sur Suivant et laisser se faire la magie!
- Une fois terminé, retirer la carte microSD ou la clé USB3 de votre poste de travail et insérer la dans le Raspberry Pi; branchez maintenant l'alimentation électrique. Vous devriez voir clignoter un petit voyant qui restera ensuite allumé. Votre Raspberry Pi est maintenant en opération
- Au démarrage, votre nouvel ordinateur a reçu une adresse IP de manière dynamique grâce au serveur DHCP de votre routeur.
- À partir de votre poste de travail et en utilisant le client SSH, il est maintenant facile de vous brancher:
# Si vous avez choisi minion01 et bioubuntu % ssh bioubuntu@minion01.local
- Utilisez la combinaison nom d'usager et mot de passe utilisée lors de la construction de la carte micro SD ou la clé USB via Raspberry Pi Imager pour entrer dans votre serveur. Vous êtes maintenant l'utilisateur ayant des droits admin via le groupe d'usagers
sudoers
.- Ok, règle de sécurité #1: par la suite, pensez à utiliser des clés d'authentification à la place des mots de passe, c'est plus sécuritaire
- Juste en cas, mettez à jour votre Raspberry Pi:
% sudo apt update && sudo apt full-upgrade % sudo reboot
- Retourner dans votre Raspberry Pi
Étape 2: Attribuer une adresse IP statique
- Par défaut, l'installation précédente utilise le service DHCP qui se trouve sur votre routeur pour recevoir son adresse IP au démarrage. Cette situation est problématique pour un serveur qui devrait toujours être accessible de manière prévisible. Dans notre cas, il faut simplement changer un fichier de configuration pour ce faire
Pour l'exemple, on utilisera l'adresse
192.168.1.10
comme adresse statique de notre serveur. - Initialiser une connexion avec votre serveur Raspberry Pi et ouvrer un éditeur de texte pour modifier le fichier suivant:
% sudo nano /etc/netplan/50-cloud-init.yaml
- En utilisant les infos spécifiées ci-dessus, éditez le fichier pour y mettre quelque chose qui ressemble à ceci:
network: ethernets: eth0: dhcp4: false addresses: [192.168.1.10/24] routes: - to: default via: 192.168.1.1 nameservers: addresses: [192.168.1.1,8.8.8.8, 8.8.4.4] version: 2
- Ce fichier est écrit dans un format qui s'appelle YAML; il faut faire très attention à l'indentation (n'utiliser pas de tabulations mais des espaces) pour séparer les champs d'informations.
- Tester votre nouvelle configuration:
% sudo netplan try
- Si vous n'avez pas de messages d'erreur, il vous reste à l'appliquer:
% sudo netplan apply
- Pour vous assurer du changement, simplement redémarrer le Raspberry Pi:
% sudo reboot
Étape 3: Monter un système de fichiers partagés NFS
- Cette étape est particulièrement importante car une carte microSD, c'est lent, fragile et pas aussi spacieux qu'un disque… Tel que spécifié ci-dessus, on assume que vous avez un NAS tout simple avec un répertoire partagé appelé
/shares/biodata
qui sera également vu par votre Raspberry Pi en tant que/mnt/biodata
; répétez pour monter/shares/rpi-home
et/shares/rpi-opt
sous/home
et/opt
respectivement. La première portion (création du répertoire sur le NAS et partage via NFS) ne sera pas expliqué ici car il existe tout simplement trop de possibilités (par ex.: simple serveur Linux vs serveur avec OS spécifiques comme Synology, Qnap, Thecus, etc…) mais on imagine pour la suite que c'est fait et que ça fonctionne et qu'il est accessible via l'adresse192.168.1.5
. Nous décrirons ici la portion spécifique au Raspberry Pi.
- Premièrement, nous avons besoin d'installer le client NFS sur le Raspberry Pi:
% sudo apt install nfs-common
- Ensuite, on s'assure de bien voir le répertoire partagé. Si votre configuration du service NFS est bonne, vous devriez voir apparaitre la liste des dossiers partagés par votre NAS:
% showmount --exports 192.168.1.5 Export list for 192.168.1.5: /shares/biodata 192.168.1.0/24
- On remarque ici que le répertoire
/shares/biodata
est accessible pour tous les ordinateurs du LAN 192.168.1.xyz. - On doit créer le répertoire local
/shares/biodata
qui servira à “accrocher” le répertoire partagé:
% sudo mkdir /shares % sudo mkdir /shares/biodata
- Pour utilisation immédiate, entrer la ligne suivante dans la console:
% sudo mount -t nfs 192.168.1.5:/shares/biodata /shares/biodata
- Si vous aller dans le répertoire, vous devriez maintenant en voir le contenu:
% cd /shares/biodata && ls -l
- Pour rendre ceci permanent, il faut modifier le fichier
/etc/fstab
du serveur Calfoutis en y ajoutant la ligne suivante:
# Prenez note que ce ne sont pas des espaces # mais des tabulations entre les champs 192.168.1.5:/shares/biodata /shares/biodata nfs defaults 0 0
- On répète pour
/home
et/opt
. On devrait avoir un fichier/etc/fstab
qui a l'air de ça:
# Prenez note que ce ne sont pas des espaces # mais des tabulations entre les champs 192.168.1.5:/shares/biodata /shares/biodata nfs defaults 0 0 192.168.1.5:/shares/rpi-home /home nfs defaults 0 0 192.168.1.5:/shares/rpi-opt /opt nfs defaults 0 0
Étape 4: Ajustements automatiques de la date et de l'heure
- Pour différentes tâches, il est important de savoir l'heure de début et de fin des tâches effectuées; cependant, le Raspberry Pi ne possède pas de fonction d'horloge permanente; par conséquent, à chaque démarrage il est minuit… Mais comme notre Raspberry Pi est branché à un réseau local qui lui est branché à l'Internet, nous avons accès au protocole NTP (Network Time Protocol). Très simplement: un logiciel client sur notre Raspberry Pi interrogera un serveur distant qui servira de serveur de temps, indiquant la date et l'heure présente et notre Raspberry Pi s'ajustera en conséquence.
- Premièrement, il nous faut installer le module de synchronisation du temps de l'utilitaire
systemd
:
% sudo apt install systemd-timesyncd
- Il faut maintenant dire à
timdatectl
d'utiliser le service NTP pour garder son horloge interne en sync et lui dire quel fuseau horaire utilisé:
% sudo timedatectl set-ntp true % sudo timedatectl set-timezone America/Montreal
- Pour vérifier que tout fonctionne:
% timedatectl Local time: Mon 2024-06-10 14:57:47 EDT Universal time: Mon 2024-06-10 18:57:47 UTC RTC time: n/a Time zone: America/Montreal (EDT, -0400) System clock synchronized: yes NTP service: active RTC in local TZ: no
Étape 5: Désactiver les interfaces WiFi et Bluetooth | Accélérer votre Raspberry Pi
- Comme vous utiliserez votre Raspberry Pi comme serveur, les fonctions de connexion sans fil via WiFi et Bluetooth ne sont pas nécessaires. De plus, ces interfaces consomment une (petite) partie des ressources d'un serveur qu'on veut consacrer au calcul. Il est très simple de les désactivés via quelques lignes de code.
- En premier, éditer le fichier appelé
config.txt
dans le répertoire/boot/firmware
:
% sudo nano /boot/firmware/config.txt
- Inscrire les lignes suivantes à la toute fin du fichier dans votre éditeur:
# Disable bluetooth dtoverlay=disable-bt # Disable wifi dtoverlay=disable-wifi
- Redémarrer votre Raspberry Pi.
- Une autre addition potentielle à votre configuration: “survolter” (overclocking) votre Raspberry Pi. Le processeur des RPi comme celui de presque tous les ordinateurs est configuré pour fonctionner à une vitesse optimale: 1.5 GHz pour le RPi 4B ou 2.4 GHz pour le RPi 5. Cependant, il est possible d'accélérer cette fréquence pour améliorer les performances de votre RPi en changeant certaines valeurs dans le fichier
config.txt
.- ATTENTION : ne faite pas cette modification si vous n'avez pas à la fois un dissipateur de chaleur ET un ventilateur de refroidissement sur votre RPi. En augmentant la vitesse du processeur, vous augmentez la chaleur dégagée…
- ATTENTION : quoique les expériences rapportées sur le Web semblent être positives dans l'ensemble, il est possible que ces modifications empêchent votre RPi de fonctionner!! Vous êtes prévenu…
# Sur un RPi 4B... 2 GHz est pas mal la limite pour une # stabilité optimale over_voltage=6 arm_freq=2000
# Sur un RPi 5... over_voltage_delta=50000 # Il semble que le cou du RPi 5 puisse aller jusqu'à 3.1 GHz mais... arm_freq=3000 # Ajuster la vitesse du processeur graphique gpu_freq=1000
Étape 6: Profiter de votre nouveau serveur!!
- Vous pouvez maintenant installé les logiciels nécessaires à votre travail selon la méthode Impilo!
- Noter cependant que certaines modifications aux procédures de compilation seront nécessaires car nous travaillons maintenant avec une plateforme différente (ARM vs Intel x86-64); nous travaillons à ajouter les infos nécessaires au fur et à mesure de nos découvertes!