Installation du serveur MQTT « RabbitMQ » sur ARM64

La majorité des commandes vont passer via un terminal, en ligne de commande. Dans ce tutoriel, nous partons du principe que vous maitrisez cette partie.

Si vous partez d’une installation propre vous pouvez passer la première partie.

1 Nettoyage d’une installation précédente.

1.1 Supprimer Erlang installé via les dépôts Debian

sudo apt remove --purge 'erlang*' -y
sudo apt autoremove -y

1.2 Supprimer les anciens fichiers de RabbitMQ et Erlang

sudo rm -f /etc/apt/sources.list.d/rabbitmq.list
sudo rm -f /etc/apt/sources.list.d/teamrabbitmq-erlang.list

1.3 Supprimer les anciennes clés GPG

sudo rm -f /usr/share/keyrings/teamrabbitmq.gpg
sudo rm -f /usr/share/keyrings/rabbitmq*.gpg

Le nettoyage est maintenant terminé.

2 Installation de RabbitMQ

Rabbit MQ recommande d’utiliser leur miroir ‘Launchpad’ pour installer Erlang 26.

Commençons …

2.1 Ajouter la clé publique GPG

La clé GPG est comme une signature numérique utilisée pour garantir que ce qu’on installe vient bien de la bonne source et n’a pas été modifié.

Quand tu ajoutes un dépôt (comme celui de RabbitMQ), tu ajoutes aussi sa clé GPG.

Ensuite, l’outil appelé GPG va utiliser cette clé pour vérifier que les paquets sont bien signés par le bon auteur (par exemple, RabbitMQ).

Si la vérification réussit, le système te dit en quelque sorte :

« Pas de souci, c’est bien signé par RabbitMQ, tu peux installer. »

Sinon, il te bloque l’installation pour éviter tout risque de piratage ou de logiciel corrompu.

curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xF77F1EDA57EBB1CC" -o /tmp/rabbitmq-erlang-key.asc

❗ ceci n’est qu’une seule et même ligne

Explications

curl : permet de télécharger un contenu sur internet.
-fsSL : cette option permet que le téléchargement soit moins verbeux. Vous pouvez ne pas l’utiliser.
L’URL : est l’url de téléchargement de la clé publique de RabbitMQ, qui est identifiée par son empreinte 0xF77F1EDA57EBB1CC.

-o /tmp/rabbitmq-erlang-key.asc : Sauvegarde le résultat dans un fichier temporaire.


gpg --dearmor < /tmp/rabbitmq-erlang-key.asc | sudo tee /usr/share/keyrings/teamrabbitmq.gpg > /dev/null

❗ ceci n’est qu’une seule et même ligne

Explications

gpg --dearmor : Transforme le fichier clé au format texte (ASCII) en format binaire (.gpg), plus adapté pour les systèmes Debian/Ubuntu.
< /tmp/… :Prend le contenu du fichier téléchargé en entrée.
| sudo tee /usr/share/keyrings/teamrabbitmq.gpg : Utilise tee avec sudo pour avoir les droits d’écriture dans un dossier système.

Sauvegarde la version binaire de la clé dans /usr/share/keyrings/teamrabbitmq.gpg.
/dev/null : Supprime l’affichage de la sortie standard pour éviter du bruit dans le terminal.


rm /tmp/rabbitmq-erlang-key.asc

Explications

Supprime le fichier temporaire que tu avais téléchargé.

2.2 Ajouter le dépôt Erlang 26

Erlang est un langage développé par Ericson.

Pour cela il faut créer le fichier avec la ligne de commande suivante

echo "deb [arch=arm64 signed-by=/usr/share/keyrings/teamrabbitmq.gpg] https://ppa.launchpadcontent.net/rabbitmq/rabbitmq-erlang/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/teamrabbitmq-erlang.list

💬 Ce dépôt est basé sur Ubuntu Jammy, mais fonctionne aussi sur Debian Bookworm.

2.3 Mettre à jour de la liste des paquets

sudo apt update

2.4 Installer Erlang 26

La ligne de commande suivante va installe une base complète d’Erlang OTP 26 :

sudo apt install erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesiar erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl -y

❗ ceci n’est qu’une seule et même ligne


Une petite étape de vérification pour voir tout c’est bien passé.

erl


Suite à cette instruction vous devriez obtenir le message équivalant à celui-ci

Erlang/OTP 26 [erts-13.x] …

Erlang 26 est maintenant installé, on va installer RabbitMQ en suivant les recommandations officielles…

2.5 Ajouter la clé publique GPG pour RabbitMQ

curl -fsSL https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.gpg > /dev/null

❗ ceci n’est qu’une seule et même ligne

2.6 Ajouter le dépôt RabbitMQ

echo "deb [signed-by=/usr/share/keyrings/rabbitmq.gpg] https://packagecloud.io/rabbitmq/rabbitmq-server/debian bookworm main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

❗ ceci n’est qu’une seule et même ligne

2.7 Mettre à jour de la liste des paquets

sudo apt update

2.8 Installer RabbitMQ Server

sudo apt install rabbitmq-server -y

2.9 Vérifier que RabbitMQ fonctionne

sudo systemctl status rabbitmq-server

Si tout est bon, la ligne suivante est retournée

Active: active (running)

2.10 Optionnel – Activer l’interface Web de RabbitMQ

sudo rabbitmq-plugins enable rabbitmq_management

Ensuite, pour accéder à l’interface : http://localhost:15672
il faut bien en tendu remplacer localhost par l’IP du serveur.

Identifiants par défaut :

  • Utilisateur : guest
  • Mot de passe : guest

⚠️ L’utilisateur guest ne peut se connecter que depuis localhost par défaut.

Voici donc comment créer un utilisateur administrateur sécurisé pour Rabbit MQ, désactiver l’accès guest à distance et sécuriser un minimum ton installation.

2.11 Créer un utilisateur admin

en remplaçant monadmin et monmotdepassefort par les valeurs de votre choix.

sudo rabbitmqctl add_user monadmin monmotdepassefort
sudo rabbitmqctl set_user_tags monadmin administrator
sudo rabbitmqctl set_permissions -p / monadmin "." "." ".*"

2.12 Désactiver l’utilisateur guest ou restreindre son usage (Fortement recommandé)

2 options :

-Supprimer complètement l’utilisateur guest

sudo rabbitmqctl delete_user guest

-Garder l’utilisateur guest mais le restreindre à localhost.
Rien à faire ici, c’est déjà le comportement par défaut.

2.13 Redémarrer RabbitMQ

sudo systemctl restart rabbitmq-server

2.14 Connexion à l’interface Web

-Ouvre ton navigateur

-http://adresseduserveur:15672

-Connecte-toi avec ton nouvel utilisateur admin

3 Activer le Plugin MQTT de Rabbit MQ

RabbitMQ est installé et fonctionne, mais il ne prend pas en charge le protocole MQTT nativement pour cela nous allons activer son plugin MQTT qui se nomme rabbit_mqtt, et l’utiliser.

3.1 Activer le plugin MQTT

Dans le terminal du serveur il faut utiliser la commande suivante

sudo rabbitmq-plugins enable rabbitmq_mqtt

Puis redémarre RabbitMQ

sudo systemctl restart rabbitmq-server

3.2 Vérifier que le port MQTT est bien ouvert (par défaut : 1883)

sudo ss -tulpn | grep 1883

vous devriez avoir quelque chose comme :

tcp LISTEN 0 128 0.0.0.0:1883 …

Sinon, il faudra peut-être autoriser ce port dans le pare-feu

sudo ufw allow 1883/tcp

3.3 Vérifier les utilisateurs autorisés

Par défaut guest n’est pas accessible à distance

Tester avec l’utilisateur admin créé plus avant :

  • Hôte : l’adresse IP de ton serveur RabbitMQ
  • Port : 1883
  • Username / Password : monadmin / monmotdepassefort
  • Client ID : n’importe quoi, ex. mqtt-explorer

Se connecter avec MQTT Explorer

  • Hôte : l’adresse IP du serveur (ou localhost)
  • Port : 1883
  • Authentification : il faut l’activer et mettre les identifiants créés
  • Laisser le reste par défaut (pas besoin de TLS dans un premier temps)

Cliquer sur Connect.

powered by Meshtastic
powered by Meshtastic