Aller au contenu

Configuration de mon Raspberry Pi

Publié le: at 10:00

J’ai acheté un Raspberry Pi 4 (4go) pour en faire un petit serveur avec lequel je vais pouvoir essayer des trucs, mais aussi pour me mettre en configuration professionnelle où mon ordinateur se connecte à des services qui se trouvent sur un serveur.

Cet article va présenter dans les grandes lignes ce que j’ai fait, sachant qu’il existe une multitude d’articles sur internet concernant la configuration de cette machine.

Sommaire :

Installation de Raspberry Pi OS

Pour installer l’OS, je vais utiliser une machine Windows sur laquelle j’ai installé le logiciel Raspberry Pi Imager. Avec la version 1.8.1 que j’utilise aujourd’hui, il est possible d’effectuer certaines étapes de configuration dès maintenant.

J’ai décidé d’installer la version Raspberry Pi OS Lite (64 bits), car je n’aurais pas besoin d’une interface graphique, et donc des ressources en plus pour m’amuser.

Une fois l’OS choisi, on sélectionne le support qui va recevoir l’installation et en cliquant sur suivant, maintenant on nous propose de personnaliser l’installation avec des options plutôt pratiques ! En effet, nous allons pouvoir :

Raspberry Pi Imager : personnalisation de l'installation

Raspberry Pi Imager : personnalisation de l'installation

En configurant dès maintenant ces éléments, nous obtiendrons une machine directement opérationnelle !

Il ne reste plus qu’à lancer l’installation et ensuite, insérer la carte SD dans notre Raspberry Pi une fois terminé.

Mise à jour du Raspberry Pi

Avant de pouvoir utiliser notre Raspberry Pi, nous allons le mettre à jour et installer un logiciel pour éviter l’usure trop rapide de la carte SD. Pour cela, et compte tenu de la configuration de l’installation, nous allons démarrer notre Raspberry Pi et normalement, nous devrions pouvoir nous y connecter en SSH en écrivant ceci (vous devrez dire ‘yes’ pour autoriser la connexion) :

ssh login@raspberrypi

Une fois connecté, nous allons mettre à jour notre machine :

sudo apt update && sudo apt upgrade

Configuration du Raspberry Pi

Maintenant, nous allons installer tous les logiciels pour le fonctionnement du Raspberry Pi, mais aussi pour l’utilisation que je veux en faire.

Log2Ram

Nous allons installer le logiciel log2ram pour éviter d’épuiser la carte SD en écrivant les logs systems dans la ram. Avant de l’installer, il est conseillé d’avoir “rsync” d’installé (normalement c’est déjà le cas) :

sudo apt install rsync

Ensuite, nous allons exécuter les commandes suivantes :

echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ bookworm main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg  https://azlux.fr/repo.gpg
sudo apt update
sudo apt install log2ram

Il faut reboot le Raspberry Pi avant d’installer autre chose. Vous pouvez alors vérifier que l’installation et l’activation se sont bien passées en exécutant la commande suivante :

systemctl status log2ram

Si c’est correct, vous devriez voir “Active” en vert dans le résultat de la commande.

PostgreSQL

PostgreSQL est disponible en faisant une commande sudo apt install postgresql, mais cela installera la dernière version disponible dans les sources par défaut. Cependant, cela ne permet pas forcément d’installer la dernière version en date. La procédure pour s’assurer que ce soit le cas est la suivante (elle permet également d’installer PostGIS) :

sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql
sudo apt install postgis postgresql-15-postgis-3

Vous pouvez vérifier si le service s’est automatiquement lancé, et si ce n’est pas le cas, le faire :

# pour permettre le redémarrage au reboot
sudo systemctl enable postgresql
# pour vérifier l'état
sudo systemctl status postgresql
# pour démarrer le service
sudo systemctl start postgresql

Création d’une base de données

Maintenant, pour pouvoir se connecter à la base de données, il faut dans un premier temps configurer l’utilisateur postgres en changeant son mot de passe :

sudo -i -u postgres
psql -c "ALTER USER postgres WITH password 'password';"

N’étant pas sur une machine ouverte sur internet et n’ayant pas de données sensibles dans cette base, je vais travailler avec cet user.

Ensuite, je vais créer une base de données nommée playground :

psql -c "CREATE DATABASE playground WITH ENCODING 'UTF8'";

Configuration de la base de données

Même si cette base a un but ludique, je vais quand même mettre en place les bonnes pratiques de configuration. Celles-ci ne sont pas forcément exhaustives, donc n’hésitez pas à me le signaler.

Installation de PostGIS

Lors de la création d’une base de données, un seul schéma de données est directement accessible : public. Souvent, ce schéma est utilisé pour mettre à disposition des données de différentes origines. Si on lance la commande d’installation de l’extension PostGIS dans la base maintenant, celle-ci va s’installer dans public, ce que nous ne voulons pas. Nous allons donc créer un schéma nommé postgis pour l’installer dedans :

psql -d playground -c "CREATE SCHEMA postgis;CREATE EXTENSION postgis WITH SCHEMA postgis;SELECT postgis.PostGIS_Full_Version();"
Définir le search_path

Avec la commande suivante, nous pouvons indiquer dans quels schémas rechercher par défaut, cela évite par exemple de devoir mettre le nom du schéma dans les requêtes. Dans le cas présent, ce sera juste postgis :

psql -d playground -c "ALTER DATABASE playground SET search_path = postgis;"
Suppression des droits de public

La bonne pratique conseille de supprimer tous les droits par défaut du profil public :

psql -d playground -c "REVOKE ALL ON DATABASE playground FROM public;"

Puis, nous lui en donnons des nouveaux :

psql -d playground -c "GRANT USAGE ON SCHEMA postgis TO public;GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA postgis TO public;GRANT SELECT, REFERENCES, TRIGGER ON ALL TABLES IN SCHEMA postgis TO public;"

De là, notre base de données est opérationnelle pour une utilisation SIG. D’autres extensions et configurations sont nécessaires pour une mise en production, pour la sécurité, le suivi, etc., mais ce n’est pas l’objectif ici. Je présenterais cela dans un futur article.

Pour une utilisation aisée de la base de données, je conseille d’installer PgAdmin4 sur votre machine, et non le raspberry pi.

Configuration de pg_hba.conf et postgresql.conf

Enfin, pour pouvoir vous connecter à votre base de données à partir d’une autre machine, nous allons modifier le fichier pg_hba.conf et postgresql.conf pour autoriser les connexions à partir de toutes les ip. Cela n’est pas à faire dans un environnement de production, à moins que vous ayez déjà un réseau qui filtre les ip. Dans le cas de la configuration du raspberrypi, je vais ouvrir à tous et toutes, étant sur mon réseau local.

Il faut donc rajouter les lignes suivantes dans les fichiers indiqués :

host    all             all             0.0.0.0/0               scram-sha-256
host    all             all             ::/0                    scram-sha-256
Décommenter la ligne : listen_addresses = 'localhost' et mettre listen_addresses = '*'