|
|
# Objectif
|
|
|
|
|
|
Installation pas à pas d'un système de base sur une machine Raspberry PI et préparation de sa configuration réseau en vue de l'installer dans le tiroir de la salle serveur réservé aux Raspberry PIs.
|
|
|
* Préparer une carte SD pour un PI
|
|
|
* Faire la configuration initiale d'un PI sans écran (depuis un autre ordinateur via ssh)
|
|
|
* Préparer la configuration réseau du PI pour l'installer dans la salle serveur
|
|
|
|
|
|
**Pré-requis :**
|
|
|
* Avoir lu la page "Quelques définitions de base" ** *EN COURS DE REDACTION* ** A définir
|
|
|
|
|
|
# Matériel nécessaire
|
|
|
## Pour installer le Raspberry PI dans la salle serveur
|
|
|
|
|
|
* **Un Raspberry PI** : toute les versions de PIs sont utilisables. Les supports prévus pour le tiroir sont pensés pour des PI3 et PI4, il sera peut être nécessaire de bricoler un peu pour installer d'autres versions mais c'est possible.
|
|
|
* **Câble USB <---> microUSB** : ce câble sera utilisé pour alimenter le Raspberry PI. Dans le tiroir des PIs , lequel héberge 24 machines, l'alimentation est amené via des ports USB pour éviter d'avoir 24 prises secteur à brancher. *Attention : le type du connecteur microUSB doit correspondre au PI utilisé, à savoir type C pour les PIs4 et type B pour les versions plus anciennes*.
|
|
|
* **Une carte SD** : les PIs n'ont pas de disque dur, ils fonctionnent sur une carte SD faisant office de stockage principal. Il est nécessaire de privilégier une carte SD de qualité, car celle-ci va être utilisée de façon plus intensive comparé à des utilisations plus classiques (coût approximatif : 10€ pour 8GB en 2020). La carte choisie devra avoir au minimum une capacité de 4GB pour permettre au PI de fonctionner correctement avec la distribution Raspbian, avoir plus d'espace peut s'avérer nécessaire en fonction de ce que l'on veut faire (des cartes de 8GB ou 16GB permettent d'être très confort).
|
|
|
* **(facultatif) Dissipateurs thermiques** : les dernières versions des PIs chauffent plus que les précédentes ce qui peut amener le processeur à limiter ses performance pour éviter la surchauffe (nottament pour les PI4 au moment de leur sortie en 2019). L'ajout de petits dissipateurs thermiques permettent de mieux évacuer cet excédant de chaleur et évitent d'avoir un PI tournant au ralenti...
|
|
|
Ceux-ci ne sont pas pour autant indispensables, ce problème a été bien amélioré pour les PI4 avec les dernières mise à jour du firmware (code embarqué qui gère les différentes puces du PI). De plus, l’installation des PI dans le tiroir est faite en position verticale sans boîtier, ce qui permet à la chaleur de mieux s'évacuer. Enfin, il est prévu d'ajouter une circulation d'air générale pour l'ensemble des PIs, laquelle devrait permettre de les maintenir au frais. Il faut voir à l'usager si ceux-ci sont nécessaires en fonction de l'utilisation qui est faite du PI.
|
|
|
|
|
|
## Pour faire ce qui est présenté sur cette page
|
|
|
|
|
|
* **Un autre ordinateur** avec une connexion internet, un lecteur de carte SD, un port USB. Cette ordinateur va permettre de préparer la carte SD pour le PI et d'effectuer les premières configurations.
|
|
|
* **Un câble ethernet RJ45**
|
|
|
|
|
|
# 1. Préparation de la carte SD
|
|
|
|
|
|
```shell
|
|
|
unzip -p ZZZZ-YY-XX-raspbian-buster-lite.zip | sudo dd of=/dev/mmcblk0 bs=4M conv=fsync status=progress
|
|
|
```
|
|
|
|
|
|
## Sous Linux, en ligne de commande
|
|
|
|
|
|
# 2. Première configuration, sans utiliser d'écran
|
|
|
|
|
|
Il est tout à fait possible d'accéder à sa machine sans utiliser un écran et un clavier directement branchés sur celle-ci. Pour se faire, il faut pouvoir se connecter a celle-ci depuis un autre ordinateur via une connexion SSH (un protocole permettant d'ouvrir un terminal sécurisé sur une machine distante).
|
|
|
|
|
|
## a. Activation du SSH au démarrage du PI
|
|
|
|
|
|
Par défaut, l’installation précédente n'active pas la possibilité de connexion sur la machine via SSH.
|
|
|
|
|
|
En temps normal, il est nécessaire d'activer celle-ci sur le PI via un utilitaire appelé `raspi-config`. Or, ceci demande d'avoir un écran et un clavier connecté directement sur le PI, ce qui n'est pas toujours possible. Heureusement, il est possible de faire autrement en utilisant la partition `/boot/` présente sur la carte SD que l'on a précédemment préparée.
|
|
|
|
|
|
Cette partition contient un ensemble de paramètres permettant de configurer le système au démarrage de la machine. Les fichiers présents permettent notamment de définir la liste des modules et électroniques à mettre en route ou non lors du démarage. Pour activer le SSH c'est extrêmement simple, il suffit d'ajouter un fichier appelé `ssh` (sans extension) dans cette partition. Au démarrage du PI, en voyant la présence de ce fichier, le système démarrera le serveur SSH sur le port `22` qui nous permettra de nous connecter à notre machine.
|
|
|
|
|
|
## b. Accès via une autre machine par SSH dans un réseau machine à machine
|
|
|
|
|
|
Pour la suite, il est nécessaire de mettre le PI dans un réseau avec notre seconde machine. Ici, on présentera une méthode où les machines ne sont pas branchée dans un réseau local classique éventuellement avec des IPs fixes (comme on pourrait le faire à la maison en le branchant sur son routeur), mais via un réseau de lien direct machine à machine permettant de faire une configuration sur un coin de table.
|
|
|
|
|
|
### Mise en place d'un réseau machine à machine
|
|
|
|
|
|
Pour mettre en place ce réseau machine à machine, il suffit de brancher un câble Ethernet entre les deux machines allumées. Il est ensuite important de bien configurer le gestionnaire de réseau de la seconde machine en spécifiant que cette connexion réseau filaire est un lien machine à machine (appelé aussi `Link-Local`) et en le paramétrant pour n'y utiliser uniquement l'IPv6 (ce qui simplifiera grandement la suite).
|
|
|
|
|
|
Dans le gestionnaire de réseau Gnome, il faut ouvrir le panneau "Paramètres réseau" via l'icône réseau accessible dans la zone de notifications. Dans l'onglet "Filaire", on peut accéder ensuite au panneau de configuration du réseau filaire en cliquant sur l'icône de roue dentée pour effectuer les réglages suivants :
|
|
|
* **IPv4 :** on désactive complètement l'IPv4 (bouton du haut)
|
|
|
* **IPv6 :** on vérifie que celle-ci est bien activée et il faut veiller ensuite à régler la négociation des adresses à `Link-Local Only` (mode correspondant à un lien machine à machine).
|
|
|
|
|
|
### Se connecter en SSH
|
|
|
|
|
|
Le PI et notre seconde machine sont maintenant interconnectés via un réseau commun. Dans ce réseau, elles ont chacune un identifiant, à savoir l'IP, qu'elles pourront utiliser afin de se trouver dans celui-ci.
|
|
|
|
|
|
Le soucis, c'est que notre configuration ne fixe pas celles-ci de façon déterminée, signifiant qu'à priori nous ne savons pas où se trouve le PI dans le réseau. Par le passé, je configurais mon réseau en IPv4 et réalisais un balayage des adresses du réseau pour trouver mon PI. On m'a un jour dit que c'était un sacrée méthode bourine d'ostrogoth et qu'il y avait bien plus simple si on utilisait de l'IPv6 ^^. C'est cette méthode élégante qui est présentée ici car, objectivement, elle est bien plus facile et efficace.
|
|
|
|
|
|
Tout d'abord il faut obtenir le nom de l'interface réseau sur laquelle est connecté le PI. On peut lister les interfaces réseau disponible avec la commande :
|
|
|
```shell
|
|
|
ip link show
|
|
|
```
|
|
|
La sortie devrait avoir une troche du genre
|
|
|
```shell
|
|
|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
|
|
|
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
|
|
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
|
|
|
link/ether ab:cd:ef:gh:ij:kl brd ff:ff:ff:ff:ff:ff
|
|
|
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
|
|
|
link/ether ab:cd:ef:gh:ij:kl brd ff:ff:ff:ff:ff:ff
|
|
|
```
|
|
|
Le nom de l'interface Ethernet que l'on cherche doit avoir un nom du type `enp0s31f6` (ou `eth0` pour une debian plus ancienne). Dans la suite on la notera `enp0s31f6`, mais si ton interface un nom différent, il faudra veiller à la remplacer par la tienne.
|
|
|
|
|
|
Ensuite, on utilise les avantages de l'IPv6 pour retrouver l'adresse de la machine connectée sur l'interface Ethernet grâce à la commande suivante :
|
|
|
```shell
|
|
|
ping6 -c2 -I enp0s31f6 ff02::1
|
|
|
```
|
|
|
Celle-ci va envoyer deux requêtes de ping auxquelles toutes les machines présentes sur le réseau accessible via la connexion Ethernet vont répondre :
|
|
|
```shell
|
|
|
PING ff02::1(ff02::1) from :: enp0s31f6: 56 data bytes
|
|
|
64 bytes from fe80::aaaa:aaaa:aaaa:aaaa%enp0s31f6: icmp_seq=1 ttl=64 time=0.115 ms
|
|
|
64 bytes from fe80::bbbb:bbbb:bbbb:bbbb%enp0s31f6: icmp_seq=1 ttl=64 time=0.314 ms (DUP!)
|
|
|
64 bytes from fe80::aaaa:aaaa:aaaa:aaaa%enp0s31f6: icmp_seq=2 ttl=64 time=0.057 ms
|
|
|
|
|
|
--- ff02::1 ping statistics ---
|
|
|
2 packets transmitted, 2 received, +1 duplicates, 0% packet loss, time 22ms
|
|
|
rtt min/avg/max/mdev = 0.057/0.162/0.314/0.110 m
|
|
|
```
|
|
|
À partir de celle-ci on obtient deux adresses correspondant à notre machine et au PI (`fe80::aaaa:aaaa:aaaa:aaaa` et `fe80::bbbb:bbbb:bbbb:bbbb`).
|
|
|
|
|
|
Pour savoir laquelle correspond à quoi, on va déterminer l'IP de notre machine sur l'interface `enp0s31f6` via la commande `ip addr` qui va retourner une réponse du type :
|
|
|
```shell
|
|
|
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
|
|
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
|
|
inet 127.0.0.1/8 scope host lo
|
|
|
valid_lft forever preferred_lft forever
|
|
|
inet6 ::1/128 scope host
|
|
|
valid_lft forever preferred_lft forever
|
|
|
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
|
|
link/ether ab:cd:ef:gh:ij:kl brd ff:ff:ff:ff:ff:ff
|
|
|
inet6 fe80::bbbb:bbbb:bbbb:bbbb/64 scope link noprefixroute
|
|
|
valid_lft forever preferred_lft forever
|
|
|
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
|
|
|
link/ether ab:cd:ef:gh:ij:kl brd ff:ff:ff:ff:ff:ff
|
|
|
inet 192.168.XX.XX/24 brd 192.168.XX.XX scope global dynamic noprefixroute wlp1s0
|
|
|
valid_lft 53121sec preferred_lft 53121sec
|
|
|
inet6 fe80::cccc:cccc:cccc:cccc/64 scope link noprefixroute
|
|
|
valid_lft forever preferred_lft forever
|
|
|
```
|
|
|
De cette sortie, la ligne intéressante a récupérer est celle commençant par `inet6` dans la partie correspondant à l'interface qui nous intéresse (`enp0s31f6` dans notre exemple). De celle-ci on peut extraire l'IPv6, celle-ci commençant par fe80:: suivie de 4 groupe de 4 caractères (ici : `fe80::bbbb:bbbb:bbbb:bbbb`).
|
|
|
|
|
|
Il est maintenant pôssible de se connecter au PI via SSH avec la commande :
|
|
|
```shell
|
|
|
ssh pi@fe80::bbbb:bbbb:bbbb:bbbb%enp0s31f6
|
|
|
```
|
|
|
avec `fe80::bbbb:bbbb:bbbb:bbbb`, l'IPv6 précédement déterminée et `enp0s31f6` le nom de l'interface Ethernet.
|
|
|
|
|
|
Une fois la connexion établie, le mot de passe de l'utilisateur `pi` est demandé (par défaut il s'agit de `raspberry`, à changer dès que possible), une fois celui-ci renseigné, bingo, on est connecté sur notre PI !
|
|
|
|
|
|
### Facultatif - Mettre en place un partage de connexion pour permettre au PI d'accéder à internet pour des configurations le nécessitant
|
|
|
|
|
|
Pour une simple configuration d'un PI en vue de son installation dans la salle serveur, cette partie n'est pas nécessaire. Mais peut-être que certain·e·s ont besoin de faire un peu plus que simplement configurer le PI pour la salle serveur et ont besoin que celui-ci puisse accéder à internet. Si l'ordinateur utilisé possède plusieurs interfaces réseau (par exemple un WiFi), il est possible de partager la connexion internet entre ses interfaces pour permettre au PI d'avoir cet accès. Pour mettre en place ce partage, une documentation assez complète (détaillant plusieurs méthodes) est disponible [ici](https://doc.ubuntu-fr.org/partage_de_connexion_internet).
|
|
|
|
|
|
## c. Configuration minimale
|
|
|
|
|
|
## d. Économie d'énergie
|
|
|
|
|
|
|
|
|
# 3. Configuration réseau pour la salle serveur
|
|
|
|
|
|
** *EN COURS DE REDACTION* **
|
|
|
|