Ariake Docs

Vous trouverez rassemblés sur ce site toutes mes documentations.

Initialement, ce site fonctionnait à l’aide de Sphinx, basé sur le language reStructuredText, avec le thème Read the docs.

Il a été migré le 1er août 2024 sur Hugo, basé sur le language Markdown, avec le thème Relearn.

Pour l’instant vous trouverez les documentations suivantes :

  • Arch Linux : Documentation sur l’installation de la distribution Arch Linux

  • Raspberry Pi : Documentation sur l’installation de Raspberry Pi OS sur votre nouvelle Raspberry Pi

  • SFTP : Documentation sur la mise en place d’un miroir web à l’aide de SFTP

  • Hugo : Petit pense-bête sur l’installation et l’utilisation du logiciel Hugo

D’autres documentations vont arriver dans les prochaines semaines / mois.

Remarque

Par défaut le site est affiché en mode sombre, pour celles et ceux qui préfèrent le mode clair, vous pouvez l’activer en cliquant en bas à gauche sur Relearn Dark et en choisissant Relearn Light.

Si vous avez des commentaires, merci d’utiliser le formulaire de contact de mon site à l’adresse : https://www.ariake.fr/contact.

Bonne consultation, en espérant que cela puisse vous aider.
Eivan

Sous-sections de Ariake Docs

Chapitre 1

01. Arch Linux

Documentations de la distribution Arch Linux

Sous-sections de 01. Arch Linux

I. Téléchargement

I.1 - Image ISO

Tous les mois une nouvelle image iso est disponible sur le site de Arch Linux.

Vous pouvez la télécharger à l’adresse : https://archlinux.org/download/.

Choisissez un miroir Français comme gandi.net pour télécharger la dernière version en cours. (version actuelle 2024.07.01)

I.2 - Préparation d’un support d’installation

Actuellement la meilleure méthode pour installer Arch Linux est de préparer une clé USB amorçable à l’aide de l’utilitaire Ventoy.

Pour télécharger Ventoy rendez-vous à l’adresse : https://github.com/ventoy/Ventoy/releases.

Ensuite pour créer votre clé USB Ventoy, vous pouvez suivre cette documentation.

Pour finir copiez l’image iso (le fichier .iso) de Arch Linux sur cette clé USB afin d’amorcer votre ordinateur sur le logiciel d’installation de Arch Linux.

II. Amorçage

II.1 - BIOS/UEFI

Sur un ordinateur récent, il faudra désactiver le Secure boot (l’Amorçage sécurisé), seulement pris en charge par Microsoft Windows.

II.2 - Amorçage de Arch Linux

Insérer votre clé USB Ventoy dans un port USB de votre ordinateur et démarrez le.

Selon le type de machine vous devrez appuyer sur une touche pour afficher le menu qui permettra de sélectionner le périphérique à amorcer, ici notre clé USB Ventoy.

Pour une machine Dell c’est la touche F12, pour une machine HP c’est la touche F9.

Pour un autre type de machine, veuillez vous référer à son manuel.

Dans cet exemple, je me baserai sur un (ancien) portable Dell Latitude E6420. Il est équipé du dernier BIOS fournit par Dell, la version A25.

Après avoir démarré le portable, appuyez plusieurs fois sur la touche F12 jusqu’à l’affichage du menu d’amorçage.

Sélectionnez votre clé USB en mode UEFI.

Important

Veillez à ne pas sélectionner le mode BIOS qui est l’ancien mode.

Vous devriez arriver sur l’écran suivant. Appuyez sur la touche Entrée pour valider la première option Arch Linux install medium (x86_x64, BIOS).

Arch Linux - Menu de démarrage Arch Linux - Menu de démarrage

Arch Linux démarrera et affichera une invite de commandes afin que vous puissiez commencer l’installation sur votre ordinateur.

Arch Linux - Invite de commandes Arch Linux - Invite de commandes

III. Installation

III.1 - Clavier

Par défaut Arch Linux démarre avec un clavier US en mode console. Il faut donc modifier cette configuration pour définir un clavier Français. Pour cela tapez la commande suivante :

loadkeys fr-latin9

III.2 - Mode d’amorçage

Dans cette documentation je partirai du principe que l’installation de Arch Linux se fera en mode UEFI et non en mode BIOS. Si votre ordinateur est très ancien et non compatible UEFI, veuillez vous référer à la documentation officielle de Arch Linux pour une installation en mode BIOS. III.3 - Connexion réseau

Veuillez vérifier que votre connexion filaire soit bien détectée avec la commande :

ip link

Vous devriez en plus de l’interface lo voir une deuxième interface qui correspond à votre carte réseau filaire, comme enp0s3 ici. Elle devrait avoir comme status UP.

Si vous ordinateur est connecté à une Box équipée d’un serveur DHCP, vous pouvez vérifier que cette interface a récupéré une adresse IP. Pour cela utilisez la commande :

ip a

Ici, la commande nous donne comme adresse ip : 192.168.1.15

Nous pouvons vérifier que nous avons bien le réseau en tapant la commande :

ping archlinux.org
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=63 time=42.4 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=63 time=43.0 ms
^C
--- archlinux.org ping statistics ---
2 packets trnsmitted, 2 received, 0% packet loss, time 1003ms
rtt min/max/mdev = 42.437/42.718/42.999/0.281 ms

Appuyez sur les touches <Ctrl>+<C> en même temps pour arrêter la commande et vérifiez que tous les ping soient passés (0% loss).

Si votre interface n’a pas récupéré d’adresse ip il faut la configurer manuellement.

Je pars du principe que votre Box utilise le réseau 192.168.1.0/24 pour votre réseau local.

Exécutez les commandes suivantes pour configurer votre interface :

ip address add 192.168.1.15/24 192.168.1.255 + dev enp0s3
Important

Vérifiez que cette adresse n’est pas déjà utilisée sur votre réseau.

Si cela est le cas et que vous avez un conflit d’adresse ip, veuillez utiliser la commande ci-dessous avant de réassigner une nouvelle adresse à votre interface réseau :

ip address del 192.168.1.15/24 dev enp0s3

On ajoute une route (adresse de la passerelle) pour accéder à l’Internet :

ip route add 192.168.1.254 via address dev enp0s3

Maintenant vous devriez avoir accès à l’Internet, pour cela utilisez la commande ping vue ci-dessus.

III.4 - Mise à jour de l’heure système

Exécutez la commande suivante :

timedatectl set-ntp true

III.5 - Partitionnement du disque

C’est probablement l’étape la plus importante.

Les disques sur GNU/Linux ont des noms comme /dev/sda, /dev/nvme0n1 ou /dev/mmcblk0.

Dans le cas de ce Dell Latitude E6420 équipé d’un disque de type SSD 512 GB, il sera identifié comme /dev/sda.

Remarque

Pour les ordinateurs les plus récents ce sera plutôt des disques de type NVMe (/dev/nvme0n1).

Pour ce disque dur, nous allons appliquer le schéma de partitionnement suivant :

Partition Taille Type Point de montage
/dev/sda1 512 MB vfat /mnt/boot
/dev/sda2 8 GB swap
/dev/sda3 Tout le reste LVM

Pour cela exécutez les commandes suivantes.

On vérifie le nom de notre disque dur :

fdisk -l
Disk /dev/sda : 512 GiB
Disk Model :
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Le disque est bien identifié sous le nom /dev/sda.

Début du partitionnement :

fdisk /dev/sda

Command (m for help): g

Created a new GPT disklabel (GUID :  XXXXX).

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-XXXXXXXXXX, default 2048):
Last Sector : +512M

Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.

Command (m for help): n
Partition number (2-128, default 2):
First sector (1050624-XXXXXXXXXX, default 1050624):
Last Sector : +8G

Created a new partition 2 of type 'Linux filesystem' and of size 8 GiB.

Command (m for help): n
Partition number (3-128, default 3):
First sector (1050624-XXXXXXXXXX, default 1050624):
Last Sector : +20G

Created a new partition 2 of type 'Linux filesystem' and of size 20 GiB.

Command (m for help): n
Partition number (4-128, default 4):
First sector (2099200-XXXXXXXXXX, default 2099200):
Last Sector :

Created a new partition 3 of type 'Linux filesystem' and of size 483 GiB.

Command (m for help): t
Partition number (1-4, default 4): 1
Partition type or alias (type L to list all): 1

Changed type of partition 'Linux filesystem' to 'EFI System'

Command (m for help): t
Partition number (1-4, default 4): 2
Partition type or alias (type L to list all): 19

Changed type of partition 'Linux filesystem' to 'Linux swap'

Command (m for help): t
Partition number (1-4, default 4):
Partition type or alias (type L to list all): 43

Changed type of partition 'Linux filesystem' to 'Linux LVM'

Command (m for help): w
The partition tables has been altered.
Calling ioctl() to re-read partition table.
Syncing disk.

Le nouveau schéma de partitionnment est en place.

Maintenant nous allons créer les volumes logiques dans notre partition Linux LVM.

Pour cela exécutez les commandes suivantes :

pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created.

vgcreate sys /dev/sda4
  Volume group "sys" successfully created

lvcreate -L 20G -n usr sys
  Logical volume "usr" created.

lvcreate -L 20G -n var sys
  Logical volume "var" created.

lvcreate -L 10G -n tmp sys
  Logical volume "tmp" created.

lvcreate -L 100G -n opt sys
  Logical volume "opt" created.

lvcreate -l 100%FREE -n home sys
  Logical volume "home" created.

Vous pouvez voir les nouvelles partitions, toujours avec la même commande :

fdisk -l

III.6 - Formatage des partitions

Pour formater les partitions, exécutez les commandes suivantes :

# Partition EFI System
mkfs.fat -F 32 /dev/sda1

# Partition swap
mkswap /dev/sda2

# Partition /
mkfs.ext4 -m0 /dev/sda3

# Partition /usr
mkfs.ext4 -m0 /dev/mapper/sys-usr

# Partition /var
mkfs.ext4 -m0 /dev/mapper/sys-var

# Partition /tmp
mkfs.ext4 -m0 /dev/mapper/sys-tmp

# Partition /home
mkfs.ext4 -m0 /dev/mapper/sys-home

III.7 - Montage des partitions

Exécutez les commandes :

mount /dev/sda3 /mnt
mount --mkdir /dev/sda1 /mnt/boot
mount --mkdir /dev/mapper/sys-usr /mnt/usr
mount --mkdir /dev/mapper/sys-var /mnt/var
mount --mkdir /dev/mapper/sys-tmp /mnt/tmp
mount --mkdir /dev/mapper/sys-home /mnt/home
swapon /dev/sda2

III.8 - Installation

Installation des paquets essentiels :

pacstrap /mnt base linux linux-firmware
Remarque

Si vous ne voulez pas la dernière version du noyau (la 5.18 actuellement) mais une version LTS (plus stable, mais plus ancienne) vous pouvez remplace linux par linux-lts.

La commande à exécuter sera alors :

pacstrap /mnt base linux-lts linux-firmware

Creation du fichier /etc/fstab.

Pour créer ce fichier exécutez la commande :

genfstab -U /mnt >> /mnt/etc/fstab

On se chroot avec la commande :

arch-chroot /mnt

On fixe le fuseau horaire avec la commande :

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Pour la/les locales du système, exécutez les commandes suivantes :

# Installation de vi
pacman -S vi
# Édition du fichier /etc/locale.gen
# Décommentez la ligne fr_FR.UTF-8

# Activer la locale
locale-gen

# Créez le fichier /etc/locale.conf
echo "LANG=fr_FR.UTF-8" > /etc/locale.conf

Définissez votre mappage clavier en mode console :

echo "KEYMAP=fr-latin9" > /etc/vconsole.conf

Déclarez le nom de votre machine :

echo "archlinux" > /etc/hostname

Si vous êtes en DHCP, ajoutez et activez au démarrage le paquet suivant :

pacman -S dhcpcd
systemctl enable dhcpcd
Important

Si vous avez déclarez une partition de type LVM veuillez :

1 - installer le paquet suivant :

pacman -S lvm2

2- modifier le fichier /etc/mkinitcpio.conf en modifiant les paramètres suivants :

HOOKS=(base udev ... block lvm2 filesystems)

par :

HOOKS=(base systemd ... block lvm2 filesystems)

NB : Si vous avez une partition /usr séparée de la racine de votre futur système, il faut, toujours dans la variable HOOKS ce ce fichier, rajouter les paramètres :

usr fsck shutdown

soit :

HOOKS=(base systemd autodetect microcode modconf block lvm2 filesystems keyboard usr fsck shutdown)

Création d’un nouveau initramfs avec la commande :

mkinitcpio -P

On change le mot de passe root avec la commande :

passwd

III.9 - Chargeur de démarrage

Nous utiliserons comme chargeur de démarrage GRUB, pour cela exécutez les commandes suivantes :

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

III.10 - Redémarrage du système

Pour quitter le mode chroot, appuyez sur les touches <Ctrl>+<d> ou en tapant exit.

Démontez toutes les partitions montées sur /mnt avec la commande :

umount -R /mnt

Et redémarrez le système :

reboot

III.11 - Ajout d’un utilisateur

Afin de ne pas utiliser votre nouveau système GNU/Linux directement en root ce qui est très dangereux, il faut créer un compte normal.

Pour cela utiliser les commandes suivantes :

useradd -c "Normal user" -m -s /bin/bash nuser
passwd nuser

III.12 - sudo

Si vous voulez à partir de ce nouvel utilisateur exécuter des commandes en tant que root avec la commande sudo, il faut installer le paquet suivant :

pacman -S sudo

Et le paramétrer :

chmod u+w /etc/sudoers
sed -i -e "s/\# \%sudo/\%sudo/g" /etc/sudoers
chmod u-w /etc/sudoers
groupadd -g 972 sudo
gpasswd -a nuser sudo

Vous pouvez maintenant vous connecter en tant qu’utilisteur nuser et utiliser la commande sudo pour exécuter des commandes en tant que root.

IV. Serveur X

IV.1 - Pilotes

Afin de pouvoir utiliser un serveur graphique (Xorg ou Wayland), il faut installer le pilote graphique associé à votre carte graphique.

Remarque

Dans le cas d’une installtion de Arch Linux en tant que système invité sous Virtualbox, vous devrez installer le paquet suivant :

pacman -S virtualbox-guest-utils

Exécutez la commande suivante pour identifier votre carte graphique :

lspci -v | grep -A1 -e VGA -e 3D

Vous pouvez afficher tous les pilotes disponibles avec la commande :

pacman -Ss xf86-video

Si vous avez une carte Intel vous pouvez installer le paquet :

# Le paquet mesa est nécessaire pour OpenGL
pacman -S xf86-video-intel mesa

Si vous avez une carte graphique NVidia, vous avez le choix entre 3 pilotes :

nvidia            : pour les dernières génération de cartes graphiques
nvidia-470xx-dkms : pour d'anciennes cartes graphiques
nvidia-390xx      : pour les plus anciennes
Important

Le Dell Latitude E6420 utilise la technologie Optimus. Ce portable possède deux cartes graphiques, une carte Intel (celle inclue avec le processeur) et une carte NVidia (pour les applications les plus exigeantes).

Dans le cas présent nous n’utiliserons pas la carte Intel mais seulement la carte graphique NVidia.

Pour ce portable, il faudra installer le paquet nvidia-390xx.

L’installation du paquet nvidia se fait via l’utilitaire pacman, par contre pour les deux autres il faudra utiliser la commande yay.

Pour cela il faut installer les paquets suivants :

pacman -S --needed git base-devel

Il faut ensuite télécharger et installer le logiciel yay avec les commandes ci-dessous.

Remarque

Les commandes ci-dessous sont à exécuter en tant qu’utilisateur normal, dans notre cas il faudra se connecter avec l’utilisateur nuser :

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Pour l’installation du pilote sur un Dell Latitude E6420, procédez comme ceci :

pacman -S linux-headers
yay -S nvidia-390xx nvidia-390xx-utils
Remarque

Le paquet nvidia-390xx-utils est nécessaire pour les applications utilisant OpenGL (comme Ultimaker Cura).

IV.2 - Xorg

IV.2.1 - Installation

Pour installer Xorg, exécutez la commande suivante :

pacman -s xorg-server xorg-apps

IV.2.2 - Gestionnaire d’écran

Nous utiliserons comme gestionnaire d’écran LightDM, pour cela exécutez la commande suivante pour l’installer :

pacman -S lightdm lightdm-gtk-greeter
systemctl enable lightdm

IV.2.3 - Gestionnaire de fenêtres

Comme gestionnaire de fenêtres, nous utiliserons Xfce4.

L’installation se fait à l’aide de la commande :

pacman -S xfce4 xfce4-goodies

Nous utiliserons jack2 comme dépendance.

#### IV.2.4 - Clavier en Français

Pour avoir un clavier Français sous Xorg il faut créer le fichier /etc/X11/xorg.conf.d/00-keyboard.conf et ajouter les lignes suivantes :

Section "InputClass"
    Identifier         "Keyboard Layout"
    MatchIsKeyboard    "yes"
    Option             "XkbLayout"  "fr"
    Option             "XkbVariant" "latin9" # accès aux caractères spéciaux plus logique avec "Alt Gr" (ex : « » avec "Alt Gr" w x)
EndSection

IV.2.5 - Audio

Remarque

Nous utiliseron ALSA comme système de gestion de son.

Pour avoir le son sous Xorg/Xfce4, il faut installer les paquets suivants :

pacman -S alsa-utils alsa-plugins pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack pamixer pavucontrol

Il faudra redémarrer le système pour prendre en compte tous ces changements avec la commande :

shutdown -r now         (ou reboot)
Chapitre 2

02. Raspberry Pi

Documentations sur la Raspberry Pi

Sous-sections de 02. Raspberry Pi

I. Matériels

Sur cette page vous trouverez un guide rapide pour installer le système d’exploitation Raspberry Pi OS sur votre nouvelle carte Raspberry Pi.

Nous allons utiliser dans ce tutoriel une carte Raspberry Pi 4B avec 4GB de mémoire, mais cela reste valable pour les autres versions. Nous utiliserons la version 64 bits de Raspberry Pi OS.

I.1 - Matériels obligatoires

I.2 - Matériels optionnels

  • un cable HDMI (ou adaptateur)
  • un clavier et une souris (nous n’utiliserons pas de souris car nous allons déployer la version Light de Raspberry Pi OS qui n’a pas d’interface graphique)
  • un câble réseau si vous souhaitez utiliser une connexion filaire si vous ne voulez pas utiliser le réseau wi-fi
  • un écran avec une prise HDMI ou un adaptateur HDMI vers VGA, DVI ou Display Port ou un commutateur HDMI. Si vous avez un écran pour votre ordinateur principal vous pouvez utiliser sa deuxième entrée.
Remarque

Vous pouvez aussi utiliser un téléviseur qui possède une entrée HDMI.

  • un boîtier Argon One M.2 (cf. § VII) avec un disque SSD M.2 SATA ou un disque dur / SSD 2.5 pouces avec un adaptateur USB-SATA.
Avertissement

Pour le modèle Raspberry Pi 4B, l’utilisation d’un boîtier est fortement recommandée, pas que pour le côté esthétique mais prioritairement pour son aspect de dissipation thermique.

Éviter celui de la fondation Raspberry Pi.

Dans le cadre d’une utilisation de votre Raspberry Pi comme serveur, privilégiez un boîtier premium comme l’Argon One M.2 (cf. § VI), pour une utilisation plus basée sur l’électronique dirigez vous vers un boîtier donnant accès à tous les connecteurs comme l’Argon NEO Pi 4.

Pour les autres modèles, vous pouvez utiliser de simples radiateurs à coller sur le CPU et la RAM.

II. Installation

  • Télécharger Raspberry Pi OS Lite en version 32 bits ou en version 64 bits
  • Décompresser le zip, un fichier .img est alors créé. C’est ce fichier qui sera à écrire sur la carte microSD et le SSD avec le logiciel Raspberry Pi Imager.
  • Télécharger Raspberry Pi Imager, l’installer et l’éxécuter.
Note

Vous pouvez activer des options avancées en appuyant sur les touches Ctrl + Shift + X.

Cela vous permettra de prérégler certaines options comme le nom d’hôte de votre Raspberry Pi, l’activation du serveur SSH…

  • Image customisations options : for this session only
  • Set hostname : raspberry
  • Enable SSH
    • Use password authentification:
      • Set password for pi user: raspberry (dans notre exemple)
  • On décoche l’option : Configure wifi (nous utiliserons une connexion filaire)
  • Set locale settings
    • Time zone: Europe/Paris
    • keyboard layout : fr
  • Persistent settings
    • Play sound when finished
    • Eject media when finished
    • Enable telemetry

SAVE

Lors de l’exécution de Raspberry Pi Imager, choisissez les options suivantes :

  • Système d’exploitation:
    • utiliser une image personnalisée
    • choisir le fichier .img obtenu lors de la décompression de l’archive zip effectué ci-dessus
  • Stockage: choisissez votre carte microSD (attention de ne pas se tromper à cette étape)
  • Écrire (veuillez patienter pendant l’écriture de l’image sur votre carte microSD)
  • Oui
Avertissement

Sous windows, une fenêtre peut apparaitre vous demandant de formater le nouveau volume, ignorer cette fenêtre.

III. Premier démarrage

Si vous avez branché l’alimentation à votre Raspberry Pi, veuillez la déconnecter.

Vous pouvez insérer la carte microSD (broches côté carte) dans son logement, connecter le câble HDMI, le câble réseau et éventuellement le clavier.

Connecter ensuite l’alimentation à votre Raspberry Pi, la DEL rouge devrait s’allumer et démarrer Raspberry Pi OS.

Remarque

Si votre alimentation possède un interrupteur, il vous faudra appuyer dessus.

Pour ouvrir votre première session, il vous faudra utiliser l’identifiant pi et le mot de passe que vous avez renseigner lors de l’activation des options avancées (voir ci-dessus).

Dans notre exemple, l’identifiant sera pi et le mot de passe raspberry.

IV. Connexion à distance

L’intéret de la connexion à distance permet d’utiliser les périphériques (clavier/souris/écran) de votre ordinateur personnel, sans devoir en racheter spécifiquement pour la Raspberry Pi.

IV.1 - Obtention de l’adresse IP

Afin de se connecter à distance sur votre Raspberry Pi nous allons récupérer l’adresse IP qui lui a été affectée.

Généralement cette adresse est distribuée par votre BOX Internet, vous pouvez d’ailleurs la voir via la page d’administration de cette dernière.

Après vous être connecté, taper la commande

ip a

Pour l’interface eth0, rechercher la ligne commençant par

inet

Elle contient l’adresse ip de votre Raspberry Pi, ici : 192.168.1.80

IV.2 - Connexion

Pour vous connecter depuis votre ordinateur personnel à votre Raspberry Pi, via votre connexion filaire ou wi-fi, nous allons utiliser le protocole ssh.

Remarque

Pour rappel l’identifiant à utiliser est pi, le mot de passe est raspberry.

Sous GNU/Linux :

Vous pourrez utiliser directement la commande ssh qui est nativement installée.

Remarque

Je ne détaillerai pas la connexion à partir d’un poste GNU/Linux, je pars du principe que vous savez utiliser ssh.

Microsoft Windows

Depuis les dernières versions de Windows 10 et Windows 11, la commande ssh est nativement présente sur ces systèmes d’exploitations.

Mais vous pouvez toujours utiliser l’ancienne méthode pour vous connecter à votre Raspberry Pi, à savoir utiliser le logiciel PuTTY disponible à cette adresse : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

ssh

Pour vous connecter à votre Raspberry Pi à l’aide de la commande ssh, utiliser la commande suivante :

ssh pi@192.168.1.80

L’adresse ip utilisée est celle obtenu via la commande ip a au § III.

et renseigner le mot de passe défini à l’installation.

PuTTY

La version actuelle de PuTTY est la 0.81, cliquer sur : putty-64bit-0.81-installer.msi

Installer PuTTY et renseigner les paramètres suivants :

  • Host name (or IP address): 192.168.1.80 (l’adresse ip obtenu via la commande ip a au § III)
  • Saved Sessions : raspberry

Cliquer sur Save pour sauvegarder vos paramètres.

Pour vous connectez à votre Raspberry Pi, double cliquer sur raspberry.

Une fenêtre apparait Putty Security Alert (The server’s host key is not cached in the registry. You have no guarantee that the server is the computer you think it is.)

Cliquez sur Accept, vous aurez accès au terminal dans lequel il faudra renseigner l’identifiant et le mot de passe (cf. § III).

V. Mise à jour du système

Aprés avoir ouvert une session avec le compte pi, exécuter la commande ci-dessous pour passer en root :

sudo -i

La mise à jour du système se fait grâce aux commandes :

apt update
apt dist-upgrade

Ensuite nous allons mettre à jour l’eeprom de la Raspberry Pi :

apt install rpi-eeprom          (paquet normalement déjà installé)
rpi-eeprom-update -d -a

Pour finir on peut mettre à jour le noyau du Raspberry Pi :

rpi-update
Would you like to proceed? (y/N)

Démarrer l’installation du dernier noyau en appuyant sur la touche y.

Redémarrer votre Raspberry Pi :

init 6

VI. Amorçage sur port USB

Afin de ne pas amorcer Raspberry Pï OS à partir de la carte microSD, on peut connecter un disque dur ou un SSD via un adaptateur USB/SATA ou un boîtier acceptant un SSD tel que l’Argon One M.2.

Remarque

L’utilisation d’un disque dur ou d’un SSD permet un démarrage bien plus rapide et plus fiable dans le temps.

Dans notre cas nous avons opté pour le boîtier Argon One M.2 qui accueillera notre disque SSD de type M.2 SATA (ex. le Verbatim Vi560 S3 M.2 SSD SATA III de 512GB).

Avertissement

Veillez à bien prendre un disque M.2 SATA avec 2 encoches au niveau du connecteur. S’il y a qu’une seule encoche c’est un disque plus récent, de type NVMe, non compatible avec le boîtier Argon One M.2 SATA mentionné ci-dessus.

Remarque

Il existe un autre boîtier compatible avec les disques M.2 NVMe, c’est celui-ci : Argon One v2 NVMe - Choisir l’option 4 pour sélectionner le boîtier + la carte d’extension NVMe.

Reconnecter vous sur votre Raspberry Pi à l’aide de PuTTY (cf. § IV).

On passe de nouveau en root :

sudo -i

Exécuter la commande :

raspi-config

Choisisser les options suivantes :

6 Advanced Options
A6 Boot Order
B2 USB Boot
Ok
Finish
Ok

L’armorçage suivant se fera d’abord sur l’USB, s’il échou votre Raspberry Pi démarrera à l’aide de la carte microSD.

VII. Boîtier Argon One M.2

Dans un premier temps il va falloir installer le système d’exploitation Raspberry Pi OS sur le SSD.

Pour cela insérer le SSD dans le logement prévu à cet effet dans le boîtier Argon One, connecter cette partie du boîtier à votre PC via un câble USB-A (mâle/mâle) et référez vous au chapitre II pour installer Raspberry Pi OS.

La seule différence sera le choix du stockage où écrire Raspberry Pi OS, il faudra veiller à chosir l’Argon One.

Raspberry Pi Imager Raspberry Pi Imager

Si tout c’est correctement passé la fenêtre ci-dessous devrait s’afficher :

Raspberry Pi Imager - Écriture Raspberry Pi Imager - Écriture

Après avoir écrit l’image de Raspberry Pi OS sur le SSD, monter votre carte Raspberry Pi sans la carte microSD dans le boîtier et refermer le tout.

Important

Ne pas oublier les éléments à coller entre le boîtier et le processeur et la mémoire (la pâte thermique)

Ne pas oublier d’insérer le pont USB (double conecteur USB) qui connecte le SSD à votre carte Raspberry Pi

Rebrancher les câbles réseau et HDMI, le clavier et pour finir l’alimentation.

Appuyez sur le bouton d’alimentation du boîtier, la del rouge s’allumera et votre Raspberry Pi devrait démarrer sur votre SSD si tout fonctionne correctement.

Lorsque votre Raspberry Pi aura fini de démarrer sur le SSD, connectez vous et mettez à jour le noyau de la Raspberry Pi (cf. § V).

Important

Pensez à télécharger le script fourni par Argon40 (société qui a créé le boîtier Argon One) pour la gestion du bouton d’alimentation du boîtier et pour controller la vitesse du ventillateur.

Pour l’installer, veuillez exécuter la commande :

curl https://download.argon40.com/argon1.sh | bash

Annexes

A.1 - Commandes diverses

Arrêt de votre Raspberry Pi :

init 0

Redémarrage de votre Raspberry Pi :

init 6

Changer son mot de passe :

passwd

root peut changer les mots de passe de tous les utilisateurs, exemple :

passwd pi
Remarque

Cette commande changera le mot de passe de l’utilisateur pi.

Pour afficher la température du processeur de votre Raspberry Pi, exécutez la commande ci-dessous en root :

vcgencmd measure_temp
temp=42.3'C

A.2 - Désactivation du Wi-Fi et du Bluetooth

Si vous utilisez votre Raspberry Pi en tant que serveur privilégiez une connexion filaire, si vous le pouvez. Ce sera toujours une meilleure solution face à une connexion sans fil (Wi-Fi) (vitesse de transfert, stabilité de la connexion et sécurité des échanges réseaux).

Si vous voulez désactiver au démarrage les interfaces Wi-Fi et Bluetooth, il vous faudra modifier le fichier /boot/config.txt.

Pour cela rajoutez à la fin de ce fichier les deux lignes ci-dessous et redémarrez ensuite votre Raspberry Pi.

# Désactivation des interfaces Wi-Fi et Bluetooth
dtoverlay=disable-wifi
dtoverlay=disable-bt

Vous pouvez alors vérifier que l’interface Wi-Fi (wlan0) n’est plus listée à l’aide de la commande ip a :

Avant modification :

3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff

Après modification ces deux lignes ne devraient plus apparaître.

A.3 - Sources

Bootloader firmware update

Chapitre 3

03. SFTP (site web)

Dans ce chapitre, je vous explique comment utiliser le protocole SFTP.

Sous-sections de 03. SFTP (site web)

I. Avant propos

Pourquoi choisir le protocole SFTP plutôt que FTP ?

FTP est de base non sécurisé, ses commandes et données ne sont pas chiffrées, on peut donc intercepter le mot de passe de connexion ou le contenu des fichiers échangés.

Le chiffrement FTPS est possible mais exige une configuration plus lourde.

SFTP est plus simple à mettre en œuvre. Il est fourni avec le paquet openssh-server et permet de base le chiffrement des commandes et données transmises.

Il vérifie l’identité du client et chiffre les fichiers/répertoires échangés une fois la connexion sécurisée établie.

Il utilise les règles de chiffrement SSH (Secure SHell).

II. Installation

Comme dis précédemment, la commande sftp est inclus dans le paquet openssh-server.

Il faut donc installer ce paquet si cela n’est pas déjà fait, avec la commande :

apt install openssh-server

Les fichiers de configuration de ce paquet se trouvent dans le répertoire /etc/ssh.

III. Miroir (site web)

III.1 - Droits d’accès

Sous Debian l’utilisateur (et le goupe) par défaut utilisé par Apache ou Nginx est www-data. C’est cet utilisateur qui a été définit pour tous les fichiers et sous répertoires contenus dans le répertoire de votre site web.

Les écritures effectuées depuis un client SFTP ne doivent pas modifier ces droits.

Nous allons donc utiliser un site miroir du répertoire contenant votre site web.

III.2 - Création du répertoire miroir

L’outil bindfs liera le dossier /var/www/votre_site_web/ à un répertoire miroir dédié aux accès SFTP. Les écritures effectuées à l’intérieur de ce répertoire n’affecteront pas les droits d’accès et permissions du dossier de votre site web.

Le répertoire miroir appartiendra au groupe sftp et à l’utilisateur sftp.

Commencez par la création du répertoire miroir :

sudo mkdir /home/sftp/sites-web/votre_site_web

Création du groupe sftp :

sudo addgroup sftp

Création de l’utilisateur :

sudo useradd -d /home/sftp/sites-web/votre_site_web -g sftp sftp

Appliquez les permissions suivantes sur le répertoire miroir :

sudo chown sftp:sftp /home/sftp/sites-web/votre_site_web
sudo chmod 755 /home/sftp/sites-web/votre_site_web

Défnissez un mot de passe pour l’utilisateur sftp :

sudo passwd sftp

III.3 - Installation de bindfs

L’installation de bindfs de fait à l’aide de la commande :

sudo apt install bindfs

Le paquet fuse est ajouté comme dépendance.

Montage automatique de votre site web dans le répertoire mirroir :

sudo vi /etc/fstab

bindfs#/var/www/votre_site_web /home/sftp/sites-web/votre_site_web fuse force-user=sftp,force-group=sftp,create-for-user=www-data,create-for-group=www-data,create-with-perms=ud=rwx:god=rx:uf=rw:gof=r,chgrp-ignore,chown-ignore,chmod-ignore 0 0

III.4 - Montage de la partition bindfs

Exécutez la commande suivante pour monter la partition /home/sftp/sites-web/votre_site_web :

mount /home/sftp/sites-web/votre_site_web

IV. Journalisation

Afin de voir les connexions faites via le protocole SFTP, il faut :

IV.1 - Paramétrez le service ssh

Pour cela, dans le fichier /etc/ssh/sshd_config commentez la ligne :

#Subsystem  sftp    /usr/lib/openssh/sftp-serv

Et rajoutez les lignes suivantes :

# SFTP access
Subsystem     sftp     internal-sftp
#Port 384
PermitRootLogin no
Match User sftp
ChrootDirectory  /home/sftp/sites-web
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 022 -l INFO

Fixez les permissions sur les répertoires :

chown root /home/sftp
chown root /home/sftp/sites-web

Pour finir redémarrez le service ssh :

systemctl restart ssh

IV.2 - Créez une nouvelle règle rsyslog

Créez le fichier /etc/rsyslog.d/sftp.conf avec le contenu suivant :

# create additional sockets for the sftp chrooted users
module(load="imuxsock")
input(type="imuxsock" Socket="/home/sftp/sites-web/dev/log" CreatePath="on")

# log internal-sftp activity to sftp.log
if $programname == 'internal-sftp' then /var/log/sftp.log
& stop

Créez le répertoire :

mkdir -m2755 /home/sftp/sites-web/dev

Redémarrez le service rsyslog :

systemctl restart rsyslog

IV.3 - Activez la journalisation

Créez le fichier /etc/logrotate.d/sftp avec le contenu suivant :

/var/log/sftp.log
{
    notifempty
    compress
    delaycompress
    create 640 root adm
}
Chapitre 4

04. Hugo

Ce chapitre ne contiendra pas à proprement parlé des documentations, mais sera plus un pense-bête sur l’utilisation du logiciel Hugo, utilisé pour réaliser ce site de documentations.

Sous-sections de 04. Hugo

Hugo - Pense-bête

I. Installation

L’installation du logiciel Hugo peut être réalisée en suivant le guide Démarrage rapide.

Le plus simple pour installer Hugo est d’utiliser le gestionnaire de paquets de votre distribution (apt pour Debian, pacmanpour Arch…).

Pour debian :

apt install hugo

Pour Arch Linux :

pacman -S hugo

II. Création de votre site

Toutes les commandes du logiciel Hugo commencent par hugo, exemple pour avoir de l’aide :

hugo help

Pour créer votre site de documentations, il faudra utiliser la commande :

hugo new site quickstart        # remplacer quickstart par le nom de votre site
Remarque

Dans la suite de ce pense-bête, j’utiliserai comme nom de site quickstart.

On se place dans le répertoire quickstart:

cd quickstart

III. Ajout de contenus

Pour ajouter des contenus de type chapitre (chapter) ou page, nous utiliserons les commandes suivantes :

III.1 - Ajout d’un chapitre

Ajout d’un nouveau chapitre qui contiendra une ou plusieurs pages de documentations :

hugo new --kind chapter 01-premiere_doc/_index.md

Modifier le fichier content/01-premiere_doc/_index.md pour que dans l’arborescence du menu, ce chapitre soit affiché en premier :

+++
archetype = "chapter"
title = "01 Premiere Doc"
weight = 1
+++
Remarque

C’est l’option weight à 1 qui placera ce chapitre en premier dans le menu

Vous pouvez changer le titre en modifiant l’option title, celui-ci sera affiché dans le menu à gauche de votre futur site.

III.2 - Ajout d’une page

Pour ajouter une page dans le chapitre précédement créé, utilisez la commande :

hugo new 01-premiere_doc/01-installation.md

IV. Configuration

Voici quelques paramètres de configuration, ceux-ci sont à placer dans le fichier hugo.toml dans le répertoire quickstart.

IV.1 - Paramètres de base

A minima, votre fichier hugo.toml devra contenir ces quatre lignes :

# URL de base
baseURL = 'https://docs.example.com'
# Le language à utiliser par défaut
languageCode = 'fr'
# Le titre de votre site
title = 'My Docs'
# Le thème utilisé - dans mon cas Relearn
theme = 'hugo-theme-relearn'

IV.2 - Désactivation multilangues

Par défaut, le site est créé pour être multilangues, si ce n’est pas le cas ajouter ces options :

# Désactivation de l'option multilangues
IsMultiLingual = 'false'
# On définit le language par défaut des contenus
DefaultContentLanguage = 'fr'
# On désactive le language par défaut des sous-répertoires
DefaultContentLanguageInSubdir = 'false'

IV.3 - Paramètres généraux

Vous pouvez définir des paramètres généraux tels que ceux ci-dessous. Ces paramètres pouront être utilisés dans les différents contenus.

[params]
# Nom de l'auteur des contenus
author.name = 'John Doe'
# On désactive le changement de languages
disableLanguageSwitchingButton = 'true'
# Le titre global de notre site
globalTitle = "My docs"
# L'état initial de développement des sous-menus.
alwaysopen = ''
# Carractère affiché devant chaque nom de chapitre
breadcrumbSeparator = '>'
# Menu rétractable
collapsibleMenu = true
# Désactivation du menu Home affiché sous la barre de recherche
disableLandingPageButton = true
# Désactivation des boutons suivant et précédent
disableNextPrev = false
# Options selon le thème - ici pour Relearn on affiche la possibilité de passer du mode sombre
# au mode clair, le mode sombre étant celui par défaut (premère valeur)
themeVariant = [ "relearn-dark", "relearn-light" ]
# D'autres paramètres qui affectent l'affichage des images
  [params.imageEffects]
    border = false
    lazy = true
    lightbox = true
    shadow = false

IV.4 - Recherche et impression

Pour activer la recherche et afficher le bouton d’impression, veuillez ajouter ces paramètres :

# Activate search
[outputs]
  home = ['html', 'rss', 'print', 'search']
  page = ['html', 'rss', 'print']
  section = ['html', 'rss', 'print']

IV.5 - Personnalisation du thème Relearn

Pour ce thème, j’ai personnalisé une seule chose, j’ai supprimé le logo du thème et renseigné le titre du site.

Cela se fait en éditant le fichier themes/hugo-theme-relearn/layouts/partials/logo.html et en remplaçant le chapitre en fin de page :

<a id="R-logo" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .Site.Home) }}">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64.044 64.044">
        [...]
    </svg>Relearn
</a>

par :

<a id="R-logo" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .Site.Home) }}">My Docs</a>

V. Publication

Pour générer une version html du site, prête à être publiée sur votre serveur web, utilisez la commande ci-dessous, toujours en étant dans le répertoire quickstart :

hugo

Ensuite il faudra copier le contenu du répertoire public qui contient une copie html de votre futur site.

Remarque

Vous pouvez pour cela utiliser la commande rsync

Voici un exemple, très simplifié d’un script qui pourrait s’occuper de générer la version html de votre site et de la synchroniser dans le répertoire contenant votre site web qui sera affiché à l’aide de Apache ou de Nginx.

#!/bin/bash

rsync -avz --delete ~/quickstart/public/ /var/www/mydocs/
chown -R www-data: /var/www/mydocs/
  • ~/quickstart/public/: répertoire ~/quickstart contenant le répertoire public où se trouve la version html de votre site, après avoir exécuté la commande hugo.
  • /var/www/mydocs/: répertoire (apache ou nginx) contenant votre site web de documentations
  • www-data : utlisateur apache ou nginx

Ces variables sont à adapter selon votre configuration.

VI. Nginx - Fichier de configuration

Voici un fichier minimaliste pour la configuration de ce nouveau serveur web :

Remarque

Je ne décris pas l’utilisation d’un certificat ssl pour chiffrer les échanges.

Vous pouvez consulter cette adresse pour sa mise en place : https://www.it-connect.fr/nginx-ajouter-un-certificat-ssl-lets-encrypt-pour-passer-en-https/

server {
  listen 80;
  server_name docs.example.com;

  root /var/www/mydocs;
  index index.html;

  access_log /var/log/nginx/mydocs-access.log main;
  error_log /var/log/nginx/mydocs-error.err;

  port_in_redirect off;

  location / { 
      add_header Cache-Control "public, max-age=3600";
  }   

  location ~ \.(jpg|jpeg|gif|png)$ {
      add_header Cache-Control "public, s-maxage=7776000, max-age=86400";
  }   

  location ~ \.(css|js)$ {
      add_header Cache-Control "public, max-age=31536000";
  }   

  location /assets/fonts/ {
      add_header Cache-Control "public, s-maxage=7776000, max-age=86400";
  }   

  error_page 404 /404.html;

}