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 :

Installation d'un serveur Linux/Debian

A la fin de l’installation, nous pouvons nous connecter à cette machine Linux fraîchement installée depuis un client SSH comme Putty :

Connexion SSH

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) :

Mise à jour des sources APT

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 :

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 :

Lancement du Web Platform Installer

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.

Installation des prérequisInstallation des prérequisInstallation 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 :

Web Platform Installer

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.

Licence Constellation

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 :

Identification MyConstellationIdentification MyConstellation

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 :

Répertoire d'installation du serveur

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).

Selection de la licence

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 :

Choix du répertoire des packages

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.

Choix du port d’écoute du serveur

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 :

Configuration des clés d'accès

Pour la clé “Standard” utilisons le couple “demo/demo” :

Configuration des clés d'accèsConfiguration des clés d'accès

Et pour la clé “Administrator”, utilisons le couple “admin/password” :

Configuration des clés d'accèsConfiguration des clés d'accès

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.

Configuration des clés d'accès

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 :

Installation de la Console

Vous devez simplement spécifier le répertorie d’installation, par défaut dans /opt :

Installation de la Console

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) :

Installation de la Console

Etape 7 : Validation de l’installation

Et voilà, le serveur Constellation ainsi que la Console sont installés sur votre système Linux.

Fin de l'installation

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 :

Page du serveur

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 :

Console Constellation

Utilisez le couple login/password “Administrator” défini lors de l’installation pour vous connecter, dans notre exemple “admin/password” :

Console Constellation

Bravo, votre serveur Constellation est opérationnel !

Next steps

Prêt pour développer avec Constellation ?

Installer Constellation sur Linux
Editer la page sur GitHub
Étiqueté avec :                    

Sur le forum :

  1. 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?

  2. Merci mais j’obtiens le message « Mono is not available »

  3. @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/

  4. 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.

  5. Le serveur comme la sentinelle sont orchestrés par Supervisor sous Linux.

    Vous pouvez contrôler les services par les commandes :

    supervisorctl start constellation-server
    supervisorctl stop constellation-server
    supervisorctl restart constellation-server
    

    Même commandes avec « constellation-sentinel » pour la sentinelle.

    Cordialement

  6. Avatar for snir snir says:

    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.

  7. 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

  8. 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.

  9. 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

Continuez la discussion sur le forum Constellation

1 plus

Participants

Avatar for pier62350 Avatar for elsilex Avatar for pjuhel Avatar for hatom Avatar for snir Avatar for emilien Avatar for sebastien_warin