Sommaire
Dans cet article nous allons découvrir comment installer Constellation sur un système Linux/Debian et ses dérivés (Raspbian, Ubuntu, etc..).
Les étapes sont conceptuellement les mêmes que pour une installation sur Windows.
Prérequis
Le bootstrapper du Web Platform Installer pour Linux utilise l’outil APT pour installer automatiquement les dépendances de Constellation à savoir :
- Python 2.7 et ses outils de développement (python-dev)
- Mono 3.12 au minimum pour le serveur (Mono 3.10 pour la sentinelle)
- Supervisor
- Whiptail
Si vous êtes sur une autre distribution que Debian (ou ses dérivés) et que vous ne disposez pas de l’outil APT, vous devrez installer ces packages manuellement.
Dans cet article nous avons créé une machine virtuelle x64 et installé le système Linux Debian 8.2 en “net-install” (à télécharger ici).
Notez que la procédure est exactement la même pour un Raspberry Pi (sous Raspbian). A ce sujet, une page spécifique au Raspberry Pi et Constellation est disponible ici.
Lors de l’installation du système Debian, nous avons installé les utilitaires de base ainsi que le serveur SSH, ni plus ni moins :
A la fin de l’installation, nous pouvons nous connecter à cette machine Linux fraîchement installée depuis un client SSH comme Putty :
Pour finir, il est fortement recommandé de mettre à jour les sources APT avant de commencer l’installation de Constellation en lançant la commande suivante (en root) :
1 |
apt-get update |
N’oubliez pas, par défaut sur Debian 8, “sudo” n’est pas installé. Ainsi pour lancer des commandes en root :
-
soit vous vous connectez en SSH directement avec le login root
-
soit vous lancez la commande “su” pour ouvrir la session root depuis votre session courante
-
soit vous installez et configurez “sudo”
Voilà, notre machine Linux est prête à recevoir Constellation !
Lancer le Web Platform Installer Linux
Pour télécharger et démarrer Web Platform Installer, rien de plus simple ! Lancez simplement la commande suivante :
1 |
wget -O install.sh https://developer.myconstellation.io/download/installers/install-linux.sh && chmod +x install.sh && ./install.sh |
Le Web Platform Installer (WPI) se chargera lui même de se lancer en root en utilisant “sudo” ou “su” si la première commande n’est pas disponible.
Ainsi si le WPI est lancé depuis un autre utilisateur, vous serez amené à saisir le mot de passe du compte “root” pour l’autoriser à se lancer :
Installer la plateforme
Etape 1 : installation des prérequis
Comme décrit plus haut, le WPI va installer via APT les dépendances nécessaires pour Constellation (Python-Dev, Mono et Supervisor).
Comme il s’agit d’un système fraîchement installé, nous laissons le WPI installer l’ensemble des prérequis.
Etape 2 : sélectionnez les composants Constellation à installer
Le WPI vous permet d’installer :
- Le Serveur Constellation (avec ou sans la Console)
- La Console Constellation
- La Sentinel Service
Dans notre cas nous allons commencer par installer le serveur avec la console. Nous sélectionnons donc la première option :
Etape 3 : acceptez la licence d’utilisation
Vous retrouverez le détail des licences Constellation sur cette page. Pour résumer, Constellation est gratuit pour un usage personnel ou éducatif sans aucun but lucratif et soumis à l’acquisition d’une licence pour un usage professionnel ou entreprise.
Etape 4 : identification
Vous devez dans cette étape renseigner votre compte myConstellation.io afin de pouvoir télécharger les composants Constellation et accéder à vos licences :
Etape 5 : configuration du serveur Constellation
Entrons désormais dans les étapes de configuration de chacun des composants à installer en commençant par le serveur Constellation.
Etape 5.1 : répertoire d’installation
Vous devez choisir le répertoire d’installation du serveur Constellation :
Etape 5.2 : sélection de la licence
Vous devez ici sélectionner une licence pour l’utilisation du serveur. Vous obtiendrez l’ensemble des licences associées à votre compte avec la possibilité de créer des licences gratuites pour un usage personnel (plus d’information ici).
Etape 5.3 : choix du répertoire des packages
Dans cette étape vous devez définir le répertoire pour votre catalogue de packages de votre Constellation.
Par défaut, il s’agit du sous-dossier “Packages” de votre répertoire d’installation :
Etape 5.4 : choix du port d’écoute du serveur
Le serveur Constellation utilise le protocole HTTP/s pour exposer ses différents hubs et APIs. Pour cela vous avez besoin de choisir le port d’écoute.
Par défaut, le serveur Constellation écoutera en HTTP sur le port 8088.
A noter que vous pouvez déclarer dans la configuration du serveur Constellation sur plusieurs ports HTTP et/ou HTTPS ou même définir un chemin HTTP personnalisé. Il est d’ailleurs conseillé d’activer le protocole HTTPS si vous souhaitez exposer votre serveur Constellation sur Internet. Vous retrouverez plusieurs articles sur la configuration avancée du serveur dans la rubrique Constellation Server.
Etape 5.5 : choix des clés d’accès
Pour se connecter à Constellation vous avez besoin de créer des clés d’accès (les “Access Keys”). Dans le cas d’une nouvelle installation, l’assistant vous proposera de créer deux clés :
- Une clé “Standard” (accès de base) que vous utiliserez pour connecter vos sentinelles et packages
- Une clé “Administrator” qui dispose des droits d’accès au hub de contrôle (pour le pilotage de la Constellation) et à l’API de Management (pour la configuration du serveur)
Une clé d’accès est une chaine de caractère. Il est conseillé de choisir des clés d’accès assez longues (> 16 caractères) et compliquées.
Pour simplifier leurs mémorisations et générations, Constellation propose d’utiliser un couple login/password pour créer des clés d’accès. Pour cela, on utilise le hash SHA1.
Exemple : pour le login “Admin” et le mot de passe “Password”, la clé d’accès sera “d882b8721a224d38ebb54559e6b54e5df3a1bc6d” (soit SHA1(“AdminPassword”)). Notez bien que la casse est importante !
C’est pourquoi le WPI vous proposera soit de spécifier directement vos AccessKeys ou soit d’utiliser un couple login/password.
Ici sélectionnons la deuxième option :
Pour la clé “Standard” utilisons le couple “demo/demo” :
Et pour la clé “Administrator”, utilisons le couple “admin/password” :
Pour finir, vous pouvez ajouter le droit de débogage sur la clé “Administrator”. Cela nous permettra de tester des packages connectés à votre Constellation depuis le SDK sous Visual Studio.
Etape 6 : installation et configuration de la Console Constellation
Une fois le serveur installé, le WPI vous proposera d’installer et configurer automatiquement la Console Constellation :
Vous devez simplement spécifier le répertorie d’installation, par défaut dans /opt :
Vous pouvez aussi indiquer si vous souhaitez restreindre l’accès la console à “localhost” (ce qui n’aurait pas de sens dans notre cas étant donné que notre système Linux ne dispose pas de navigateur internet localement) :
Etape 7 : Validation de l’installation
Et voilà, le serveur Constellation ainsi que la Console sont installés sur votre système Linux.
Ouvrez un navigateur Internet et rendez-vous sur l’adresse IP ou DNS de votre système Linux sur le port spécifié lors de l’installation (par défaut 8088). Vous devriez atterrir sur une page du serveur Constellation vous indiquant le n° de la version du serveur, dans notre exemple 1.8.2.17118 :
Comme le serveur Constellation héberge la Console, vous avez un lien “Open Constellation Console” sur cette page vous permettant d’accéder directement à la Console :
Utilisez le couple login/password “Administrator” défini lors de l’installation pour vous connecter, dans notre exemple “admin/password” :
Bravo, votre serveur Constellation est opérationnel !
Next steps
- Ajoutez des sentinelles dans votre Constellation
- Téléchargez et déployez des packages sur vos sentinelles
- Exposer votre Constellation sur Internet derrière un reverse proxy Nginx en HTTPS avec des certificats SSL Let’s Encrypt
Prêt pour développer avec Constellation ?
- Créez votre premier package Constellation en C#
- Créez des packages UI en Winform ou WPF
- Connectez vos pages Web à Constellation
- Créez votre premier package Constellation en Python
- Connectez un Arduino ou un ESP8266 à Constellation
Merci pour ce tutoriel, installation très simple!
L’installation de constellation sur le même serveur que Jeedom est-il une bonne idée?
J’imagine que l’installation de l’un écrasera la configuration web de l’autre, mais une configuration avancée pourrait permettre une cohabitation.
Un raspberry pi B3 est peut-être un peu léger pour faire tourner Constellation Server & Jeedom?
Merci mais j’obtiens le message « Mono is not available »
@pier62350 : Techniquement possible après à voir les performances avec les deux technos que un même RPi (pour obtenir de haute performance il est recommandé d’installer le serveur sur un Windows même si il fonctionne sur Linux/Mono).
Pour ce qui est de la cohabitation, pas de problème, par défaut le serveur Constellation écoute sur le port 8088, port TCP que l’on peut changer lors de l’installation ou dans le fichier de configuration à posteriori.
@pjuhel : en effet, l’ajout de clé SSH pour l’installation du repository de Mono sur APT semble avoir évolué dans le dernier Debian 9. Investigation en cours, la suite sur le forum : https://developer.myconstellation.io/forums/topic/pb-installation-mono-sur-raspberry-pi-3b/
Bonjour,
merci pour ce tutoriel.
J’ai actuellement un rpi B+ qui héberge toutes mes pages php appelées par l’eedomus. Je souhaiterais savoir pour tester Constellation, je peux l’installer sur un rpi B+ ?
Sébastien.
Le serveur comme la sentinelle sont orchestrés par Supervisor sous Linux.
Vous pouvez contrôler les services par les commandes :
Même commandes avec « constellation-sentinel » pour la sentinelle.
Cordialement
Bonjour,
J’essaye d’installer une sentinelle sur une machine virtuelle Lubuntu (Virtual box 6.1.6 et lubuntu 19.10). Je rencontre un pb au niveau de mono :
Je suis un peu bloqué à ce niveau. Que faut-il faire ?
Merci par avance.
Bonjour snir,
En fait ce test de distribution sert pour installer correctement la plateforme Mono sur votre système selon la distribution utilisée. Aujourd’hui, le programme d’installation de Constellation (WPI) ne « supporte » que Ubuntu, Debian ou Raspbian.
Il faut donc installer Mono manuellement sur votre Lubuntu avant de relancer le WPI. Je serai tenter de suivre la même procédure que Ubuntu.
Voir : https://www.mono-project.com/download/stable/#download-lin-ubuntu
Après voir ajouter les bon dépôt, il faudra installer :
apt-get -y install mono-complete gnupg ca-certificates apt-transport-https
Une fois mono installé (que vous pouvez tester avec la commande
mono -V
) vous pouvez relancer le programme d’installation de Constellation.Cordialement
Bonjour,
Est-il possible d’avoir les différentes options de configurations (sélection des composants à installer, identification, répertoire d’installation, etc) dans un fichier de config que l’on pourrait passer au script ?
Dans l’idée, j’aimerai bien pouvoir build une image docker constellation et la déployer dans mon kube.
Merci par avance.
Bonjour @emilien,
L’idée d’automatiser le déploiement d’une constellation dans un kube via une image docker est géniale !!!
Actuellement le WPI Linux ne prend pas en charge un fichier de réponse pour l’automatisation, mais je vais y réfléchir prochainement sur la possibilité d’avoir cette fonctionnalité.
Merci