Installer Jeedom sur un NAS QNAP. Machine virtuelle ou Docker (script v3 ou v4) – NAS – Bienvenue sur le forum de domotique-et-objets-connectes.fr

2sbanqsjmshjgtpthr1g-6014543

Si vous trouvez que l’installation de Jeedom sur un Raspberry Pi 3 manque de fiabilité et de performance, vous pouvez opter pour un NAS (Network Attached Storage). Revers de la médaille, le ticket d’entrée est beaucoup plus élevé et demande d’un peu plus de connaissance de base (mais rien d’insurmontable comme vous allez le voir dans ce tutoriel). Comptez environ 550€ pour une configuration x86 équipée de 8GB de RAM et 2x2To de stockage.

Dans ce tutoriel, nous allons tester l’installation de Jeedom sur une machine virtuelle Debian ainsi que dans un conteneur Docker. Ce tutoriel a été réalisé sur un NAS QNAP TS-251A mais la procédure sera très similaire pour d’autres modèles ou d’autres fabricants NAS (Synology, QNAP, TerraMaster…)

Quel NAS choisir ?

4fal1isb3lyowq3xxpll-8028394

NAS Synology DS718+

Les NAS équipés de processeurs ARM permettent de déployer des conteneurs Docker mais vous risquer de rencontrer des difficultés pour utiliser des contrôleurs branchées sur le port USB du NAS (Z-Wave, RFXCom, RFlink, bluetooth, sniffer Zigbee..). En effet, bien souvent les drivers n’ont pas été compilés pour les NAS à base de processeur ARM (Alpine AL-212, Alpine AL-314…). Il est possible de le faire mais c’est assez long et difficile.

Je vous conseille donc d’opter directement pour un NAS équipé d’un processeur intel x86. Ils sont un peu plus chers mais vous serez en terrain connu. Choisissez également un modèle qui permet d’ajouter une extension de RAM. Les modèles d’entrée de gamme sont souvent limités à 1GB de mémoire. C’est suffisant pour Docker mais la virtualisation est quasi impossible. Il faudra au moins 4GB pour faire faire fonctionner une machine virtuelle correctement.

Pour bien choisir votre NAS, vous pouvez commencer par lire ce guide qui fait le point sur les différents modèles prenant en charge la virtualisation ou Docker.

DS218+ DS718+ TS-251+
kgpnzu5rwv0jq7vfq7lu-2512405 nibtashiboiuaf7mhgo3-2440311 wtka6qv9qehfcabt0i2q-3573336
Processeur Intel Celeron J3355

Dual Core@2.0 GHz

Intel Celeron J3455

Quad Core@2.3 GHz

Intel Celeron J1900

Quad-core @ 2,0 GHz

RAM 2 GB DDR3L 2 GB DDR3L 2 Go DDR3L SO-DIMM
RAM max 6 GB  (2 GB + 4 GB) 6 GB (2 GB + 4 GB) 8 GB (2 x 4 GB )
Nombre VM max.* 2 2 2
Stockage max. 28 TO

2 x 14 TO (RAID0)

28 TO

2 x 14 TO (RAID0)

non précisé
Transcodage H.264 (AVC), H.265 (HEVC), MPEG-2 et VC-1 ; résolution maximale : 4K (4096 x 2160)@30i/s H.264 (AVC), H.265 (HEVC), MPEG-2 et VC-1 ; résolution maximale : 4K (4096 x 2160)@30i/s non précisé
USB 2.0 x2 x2
USB 3.0 x1 x3 x2
Ethernet 1GbE x1 x2 x2
eSATA x1 x1 x1
Sortie HDMI x1@1080p
Bruit 19.3 dB(A) 18.4 dB(A) 15,4 db(A)
Conso. normale 17,23W 20,1 W 18,09 W
Conso. en veille 5,4 W 9,1 W 10,56 W
Fiche technique Consulter Consulter Consulter
Tarif Nu** ~ 340€ ~445€ ~ 365€

(*) nécessite au moins 4GB de RAM pour pouvoir installer l’application de Virtualization Station (QNAP) ou Virtual Machine Manager de Synology.

Coté performances brutes des CPU, le processeur Intel Celeron J1900 qui équipe le QNAP TS-251+ est 54% plus puissant que le Celeron J3355 du Synology DS218+ d’après les tests réalisés par le site CPU Benchmark. Le J3455 qui équipe le DS718+ est le plus puissant (78% plus puissant que le Celeron J3355@2GHz) ce qui justifie a centaine d’euros supplémentaires à débourser pour ce modèle.

hnzjuusa3eqosiwutm8i-3697859

Benchmark CPU des processeurs Intel J3455, J1900 et J3355. Source : cpubenchmark.net

Ce qui fait la force de Synology, c’est la qualité de ses applications (virtualisation, vidéo-surveillance…) et la très grande communauté d’utilisateurs. Le NAS de QNAP sont plus économiques. A budget équivalent vous aurez un NAS plus puissant. Comme nous allons le voir dans ce tutoriel, les applications de QNAP conviennent très bien pour un usage quotidien.

Quelques conseils avant de commencer

Vous aurez certainement besoin de piloter ou récupérer des informations en provenance d’accessoires domotiques via un contrôleur ou une passerelle domotique (Z-Wave, RFXCom, RFlink, bluetooth, sniffer Zigbee..). Les drivers (modules) ne sont malheureusement pas chargés au démarrage par le système d’exploitation du NAS QNAP. Heureusement, l’OS du QNAP est basé sur une distribution Linux. Commencez par lire ce tutoriel qui explique comment charger les modules au démarrage.

Configuration testée : NAS QNAP TS-251A

cstmwbfshwwuf2nq4wwj-8190343Pour ce tutoriel, j’ai réalisé les tests sur le NAS TS-251A du fabricant QNAP équipé de 2 disques dur de 2To chacun du fabricant Western Digital. Les disques durs de la série RED sont dédiés à un usage intensif typique des NAS. Pour encore plus de sécurité, il est préférable de créer un volume de stockage de type RAID 1 (miroir). Le RAID 1 permet une réplication en temps réel des données évitant ainsi toute perte de données en cas de panne d’un disque.

J’ai opté pour le modèle TS-251A car c’est le modèle le moins chère de la gamme qui est compatible avec l’application Virtualization Station de QNAP.

Le TS-251A est livré avec 2Go de RAM. C’est largement suffisant pour faire fonctionner Docker mais c’est un peu juste pour Virtualization Station. Impossible également d’utiliser la suite de développement d’objets connectés QIoT. Le TS-251A est équipé de deux emplacements au format SODIM ce qui permet d’installer jusqu’à 8Go (2x4Go).

Configuration testée

Budget de la configuration ~510€.

Installer Container Station, Virtualization Station et Download Station

Avant l’aller plus loin, ouvrez l’App center et installez les applications suivantes si ce n’est pas déjà fait :

  • Container Station permet d’utiliser des Dockers. Ce sont les ressources du NAS (sont système d’exploitation Linux) qui sont utilisées. C’est une solution plus légère que la virtualisation et en générale moins consommatrice en ressources (CPU, RAM)
  • Virtualization Station. C’est l’application QNAP qui permet de créer et gérer des machines virtuelles. Chaque fabricant propose une solution similaire. Virtualization Station nécessite au moins 2GB de RAM. Pour plus de confort, optez directement pour une extension à 8GB (environ 60€)
  • Download Station. Tous les NAS disposent d’une application permettant de télécharger et partager des fichiers. Chez QNAP elle se nomme Download Station. C’est beaucoup plus pratique que de télécharger les fichiers sur un PC puis les déplacer sur le NAS.
xv3nan2cbmxp8483bzye-1975488 0fauq7ke29ke5rvkajmd-2202034 fqy2w56fmw69xaa3nsbj-4521173

Installer Jeedom sur une machine virtuelle Debian

Si votre NAS est équipé d’au moins 2GB de RAM*, vous pouvez installer Jeedom sur une machine virtuelle (VM**). La distribution Debian est conseillée. C’est également cette distribution qui sert de base à Raspbian, la distribution adaptée au Raspberry Pi.

(*) Attention, les contraintes techniques peuvent varier d’un fabricant à l’autre et d’un modèle à l’autre.

(**) VM : Virtual Machine … Machine Virtuelle. Ca sera plus facile à lire.

Télécharger Debian Stretch ou supérieur

Ouvrez Download Station. Allez sur le site de Debian pour récupérer le lien de la distribution. Prenez la version amd64 netInstall (même si le NAS est équipé d’un processeur Intel x86). Le téléchargement est rapide même avec une connexion moyenne. L’archive pèse environ 290Mo. Si vous changez d’avis, vous pourrez installer un bureau graphique à la fin de l’installation (ou ultérieurement)… ce n’est pas comme Windows ou macOS !

Les liens vers la version NetInstall (petite taille) se trouvent sur cette page.

Sur Download Station, cliquez sur + puis Entrer URL. Collez le lien dans la boite de dialogue et lancez le téléchargement. L’image de Debian est enregistrée par défaut dans le répertoire Download à la racine du NAS.

2zzdk9gjeyzmbqobuuqb-5117063

Créer la machine virtuelle Debian

Une fois le téléchargement terminé, ouvrez Virtualization Station et lancez la création de la machine virtuelle et cliquant sur créer VM.

r7qoonyuvbt2pcoh3pzz-7390626

Adaptez les paramètres en fonction de la puissance de votre NAS et des performances souhaitées pour Jeedom :

  • Système : indiquer Linux et Debian dans la liste. La version n’a pas d’importance
  • Coeur : 1 ou 2
  • Mémoire : 1024 MB c’est bien. Plus si vous avez ajouté une extension à 8GB
  • Image CD : Indiquez le chemin vers l’ISO précédemment téléchargé. En le conservant sur le NAS, vous pourrez vous en servir ultérieurement pour d’autres VM
  • Stockage. Comptez 6GB pour Linux et 1GB pour Jeedom. Vous pouvez créer un disque de 30GB pour démarrer. La taille pourra être augmentée ultérieurement.
  • Emplacement sur le NAS : indiquez le répertoire d’installation de la VM. Le mieux est de créer un répertoire dédié pour faciliter la gestion et la sauvegarde.

wiqhq4c4wckurwrftbjd-4527570

Indiquer un mot de passe VNC qui permettra d’accéder à l’écran de la machine virtuelle à n’importe quel moment.

Cliquer sur OK pour terminer la configuration. Dernière chose indispensable à faire avant de démarrer la VM Jeedom, configurer le clavier. Vous allez devoir saisir les mots de passe root et utilisateur. Cliquez sur l’image de la VM pour déployer le menu puis cliquer sur la roue crantée

wdjyptxlhpizgfor56xh-3797568

Ouvrez l’onglet paramètres puis opération de la console. Choisissez la disposition de votre clavier dans la liste.

6b25d57d0r2aujv6ugzt-1008506

Donner un accès aux ports USB pour Z-Wave, RFXCom, Zigbee…

Avant d’aller plus loin, je vous conseille de lire ce tutoriel qui explique comment installer les drivers prenant en charge le port USB du NAS QNAP.

Pendant que nous sommes dans les réglages de la VM, on va en profiter pour donner un accès aux ports USB à la VM. Vous pourrez ainsi utiliser les passerelles domotiques connectées sur les ports USB du NAS (contrôleur Z-Wave, RFXCom, RFLink, Zigbee, Bluetooth…).

Ouvrez le gestionnaire de périphériques USB

eg2wdrwhvptsztgpoeq7-4113333

On retrouve bien dans le gestionnaire les 3 passerelles connectées au NAS : RFLink, clé ZWave et le dongle Zigbee nécessaire pour Zigbee2MQTT. Cochez la passerelle que vous voulez utiliser sur le NAS et cliquez sur OK.

0ahxagjoyyd2fjyz0ufg-7442255

Il est également possible de le faire à chaud. Dans ce cas vous aurez un message d’avertissement à valider.

p3kqfkcyccfye0oyvd75-9512319

Il est également possible de débrancher à chaud un accessoire partagé sur la VM. Attention à stopper le service du plugin pour éviter les erreurs.

Activer le démarrage automatique de la VM Jeedom

Vous voudrez enfin très certainement que Jeedom démarre automatiquement au démarrage du NAS. Ce n’est pas très pratique de devoir lancer manuellement le serveur domotique après une coupure de courant. Ouvrez le panneau Autre et choisissez Conserver l’état précédent. Cliquer sur Appliquer pour enregistrer les paramètres.

Ouvrir la console et installer Debian

Tout est prêt, vous pouvez démarrer la VM

et ouvrez la console.

y07jxzqngkrybobarxzm-8377909

Une nouvelle fenêtre s’ouvre dans le navigateur ainsi qu’une boite de dialogue vous demandant le mot de passe VNC créé précédemment.

Vous devriez arriver sur la première page du logiciel d’installation de Debian. Choisissez Graphical install pour commencer l’installation du système. Si ce n’est pas le cas, attendez quelques secondes que Debian finisse de démarrer.

Configurer la langue du système

Configurer le réseau

Configurer les comptes root et utilisateur

Saisissez le mot de passe root puis le compte utilisateur et son mot de passe. N’utilisez jamais le compte root pur installer Jeedom (ou un autre logiciel d’ailleurs). Choisissez un mot de passe différent pour les deux comptes. Le compte root offre un accès total au système.

Configurer le disque

Inutile de partitionner le disque. Pour plus de sécurité pour pouvez chiffrer le disque de la VM. N’oubliez pas de cliquer sur oui à la question faut-il appliquer les changements sur le disque (même si vous n’en avez fait aucun).

Installation (y compris paquets complémentaires)

Sélectionnez au moins les paquets suivants Serveur SSH et Utilitaires usuel du système. Inutile d’installer un bureau graphique qui ne fera que consommer de la place sur le disque de la VM et consommer des ressources du NAS.

Installation de grub

Grub est un petit logiciel qui permet de démarrer le système au démarrage de la VM. S’en lui Debian ne pourra pas démarrer. Grub est installé sur le disque dur virtuel de la VM Jeedom. Aucune crainte à avoir, on ne va pas toucher au NAS.

L’installation de Debian est maintenant terminée. Le système va redémarrer

Connectez-vous en SSH à la machine virtuelle

Comme vous avez du le constater, il n’est pas possible de coller des commandes linux depuis la console. Connectez-vous en SSH à la machine virtuelle sur le NAS. Sous macOS, ouvrez le Terminal. Sous Windows, lancez PowerShell ou installez Putty (gratuit).

Exécutez la commande

ssh utilisateur@ip_vm_jeedom

Saisissez votre mot de passe. A la première connexion, vous devez d’abord accepter la clé d’authentification en saisissant yes au clavier.

Vérifier que la commande sudo est disponible

Je n’ai pas pris le temps de vérifier l’origine du problème, mais la commande sudo ne semble pas être installée sur la distribution netinstall de Debian Stretch. Commencez par vérifier si elle est disponible en exécutant la commande suivante par exemple

sudo ls /dev/tty*

Le système doit vous demander votre mot de passe et lister les périphériques sur le port tty. Si la commande échoue, il faut installer la commande sudo manuellement comme ceci

su - root

Saisir votre mot de passe root (créé au moment de l’installation) puis exécuter la commande d’installation

apt-get install sudo

Il faut ensuite donner l’autorisation à votre compte utilisateur d’utiliser la commande sudo. Exécuter cette commande en remplaçant le nom de l’utilisateur

adduser NOM_UTILISATEUR sudo

Vous pouvez vérifier le fichier sudoers qui devrait ressembler à ceci (nano /etc/sudoers)

# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

Il ne reste plus qu’à redémarrez le système

sudo reboot

Comment attribuer une adresse IP fixe à la machine Virtuelle ?

Virtualisation Station n’offre aucune solution pour attribuer une IP fixe à la VM. Le risque est que la machine virtuelle change d’adresse IP après un redémarrage, rendant le serveur inaccessibles aux accessoires domotiques ou une application tierce. Pour éviter ça,  on va devoir attribuer nous même une adresse IP fixe en modifiant les paramètres de l’interface.

Ouvrez la console depuis la gestionnaire de VM

y07jxzqngkrybobarxzm-8377909

Connectez-vous et ouvrez le fichier de configuration (vous pouvez également vous connecter en SSH)

sudo nano /etc/network/interfaces

Commentez la configuration actuelle et collez cette nouvelle configuration en l’adaptant à vos paramètres. Ici la VM sera accessible à d’adresse IP 192.168.1.10

auto ens3
iface ens3 inet static
address 192.168.1.10
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Enregistrer avec CTRL+X puis O. Redémarrer ensuite le système avec la commande sudo reboot.

Après le redémarrage, vous pouvez vérifier l’adresse IP en exécutant cette commande

/sbin/ip -4 addr

do0gdp5pkdf0drabaewz-7658238

Installer Jeedom sur la machine virtuelle Debian Stretch

L’installation est ultra-simplifiée depuis le script v3. Commencez par récupérer le script avec la commande wget

wget https://raw.githubusercontent.com/jeedom/core/master/install/install.sh 

On rend ensuite le script exécutable

chmod +x install.sh

Puis on lance l’installation de Jeedom

sudo ./install.sh

Le script commence par mettre à jour le système. En fonction du débit internet, l’installation peut prendre environ 30 minutes, le temps d’aller regarder un épisode sur Netflix… ou sauter au paragraphe suivant pour tester l’installation avec un Docker 🙂

hk6gasiwdbo33caebh5b-1624001

Une fois l’installation terminée, vous pouvez vous connecter à Jeedom et saisissant l’adresse IP configurée précédemment depuis un navigateur internet.

22owzeuj1yu1evedndww-1492250

Test du plugin Z-Wave

Il ne reste plus qu’à tester que tout fonctionne correctement comme sur un Raspberry Pi ou un ordinateur classique. L’installation et l’activation du plugin Z-Wave n’a posé aucun problème particulier.

Le contrôleur Z-Wave branché sur un port USB à l’arrière du QNAP est parfaitement détecté par la VM.

Après avoir installé le plugin officiel Z-Wave depuis le Market, ouvrez le panneau de configuration. Le contrôleur Z-Wave devrait être correctement détecté dans la liste des port disponibles. Fermez la page de configuration si vous avez branché à chaud le contrôleur. Sauvegardez la configuration et relancez l’installation des dépendances.

rip2bmfgju2wgy1lh5yc-6072191

L’inclusion d’une prise connectée Neo CoolCam NAS-WR01ZE (clone de la prise connectée Fibaro FGWPE-102 ZW5) n’a posé aucun problème. Tout fonctionne parfaitement.

Sauvegarder la VM Jeedom (manuel ou planifié)

Gros avantage d’installer Jeedom sur une Machine Virtuelle, il est possible de réaliser des sauvegardes directement sur le NAS. Ouvrez le gestionnaire de sauvegarde depuis le menu

La tâche de sauvegarde permet de sauvegarder plusieurs VM simultanément. Par défaut, la sauvegarde est réalisée dans un répertoire du NAS mais vous pouvez également enregistrer la sauvegarde sur un second NAS pour plus de sécurité.

On peut planifier la sauvegarde (journalière, hebdomadaire, mensuelle). Seul problème, tous les périphériques USB sont déconnectés durant la sauvegarde 🙁

Je vous déconseille donc de planifier vos sauvegardes car il faudra re-configurer le port USB manuellement après chaque sauvegarde. Ici par exemple, le plugin Z-Wave a perdu le port USB du contrôleur.

Avantages et inconvénients d’une VM Jeedom

Je manque encore d’expérience sur le long terme mais voici quelques conclusions générales sur l’installation de Jeedom sur une VM Debian

  • Simplicité d’installation
  • Montage / démontage à chaud des accessoires USB
  • Possibilité de faire des clichés de la VM (avant l’installation d’un plugin non certifié). Possibilité de revenir en arrière en cas de problème
  • Très bonnes performances
  • Lancement correct du serveur et contrôleurs domotique après un redémarrage du NAS