Prise en main (Getting Started)

Présentation du projet Zéphir

Nom du projet:Zéphir
URL du projet:https://dev-eole.ac-dijon.fr/git/zephir.git
version:alpha

Pré-requis

  • 2 Go de RAM

  • Installer l’application sur un système linux Ubuntu (>= 18.04)

  • Installer Docker et Docker-compose avec les paquets Ubuntu

    apt install docker.io docker-compose
    

    Vérifier que Docker fonctionne à l’aide de la commande suivante

    service docker status
    
  • Installer les outils Docker à la main

    • installer Docker

    Docker

    Dans ce cas, installer la version Docker community edition

    • installer Docker-compose

    Docker-Compose

Récupérer les sources de l’application

  • Cloner le code source de l’application depuis les dépôts de code EOLE

    git clone https://dev-eole.ac-dijon.fr/git/zephir.git && cd zephir
    
  • Se placer sur la branche de la version en cours de développement

    git checkout develop
    
  • S’assurer de disposer d’un nom de domaine valide et accessible OU renseigner le ficher /etc/hosts de la machine qui permet d’accéder à Zéphir

    vi /etc/hosts
    127.0.0.1  <nom-de.domaine>
    
  • Renseigner le fichier de configuration .env situé à la racine du projet. Ce fichier doit être situé à l’endroit où seront exécutés les commandes zephir-compose

    Important

    En l’état des développements, les services sont accessibles par les chemins suivants :

    • Interface web : /
    • SSO (keycloak) : /auth/
    • Traefik dashboard : /traefik/
    • API : /api/
    • Messages-web : /messages/
    • Adminer : /adminer/
    • Portainer: /portainer/

Lancer Zéphir

  • Créer les images docker

    ./bin/zephir-compose -b dev -- up --build -d
    

    L’option -d permet de lancer l’application en arrière plan

  • Créer les images docker avec des conteneurs additionnels

    En mode dev il peut être intéressant d’activer les helpers. Les helpers sont des conteneurs additionnels :

    • treafik : une interface web pour Treafik
    • portainer : interface web pour la gestion des conteneurs
    • adminer : interface web pour PostgreSQL
    • messages-web : interface web de test de messages de l’api

    Pour activer les helpers, taper la commande avec l’option --helpers

    ./bin/zephir-compose -b dev --helpers  -- up --build -d
    

    La commande ci-dessus va construire les conteneurs docker localement.

  • Visualiser les conteneurs

    Pour voir ces conteneurs, exécuter la commande suivante :

    docker ps
    

La liste complète des services est visible dans le répertoire services/ du dépôt.

Vérifier que l’application est lancée

  • Attendre un certain temps (voire un temps certain) que le build se termine ;
  • Une fois le build terminé, attendre que les services s’initialisent (~5min) ;
  • Ouvrir un navigateur et se rendre sur l’URL suivante : https://<ip_du_zephir_ou_nom_de_domaine>. (note : Le reverse-proxy configuré dans Traefik redirige les connexion HTTP vers HTTPS).
  • Attendre jusqu’à ce que l’URL soit accessible, une mire d’authentification apparaît ;
  • Se connecter avec le login saisi dans le fichier .env ou par défaut : admin_zephir, password: admin_zephir.

Appairer un serveur

  • Créer le serveur sur l’application Zéphir

    • Depuis l’application Zéphir, aller dans l’onglet Serveurs et créer un serveur en cliquant sur le bouton Nouveau (choisir Eolebase comme modèle de serveur)
    • Dans le menu des serveurs, choisir le serveur nouvellement créé, et aller dans Appairage du serveur. Télécharger le fichier de configuration, l’ouvrir et copier son contenu dans le presse-papier.

    Note

    La génération de la clef d’appairage peut prendre un certain temps. Attendre un peu avant d’accéder à la page d’appairage.

  • Disposer d’un serveur physique ou virtuel à enregistrer

    • Utiliser un module EOLE non instancié, par exemple un Eolebase.

    Note

    dans le cadre de l’infrastructure de développement interne EOLE, utiliser une image OpenNebula non instanciée (ex: aca.eolebase-2.6.2.1-Daily).

    • Coller le contenu du fichier de configuration d’appairage du serveur dans un fichier au format JSON nommé peer_conf.json :

      vi /root/peer_conf.json
      

      Le contenu collé est de la forme {"pub_key": "-----BEGIN [...] , "serverid": "1"}

    • Sauvegarder le fichier et quitter.

    • Installation des paquets nécessaires

      apt install git make
      
    • Cloner les sources

      git clone http://dev-eole.ac-dijon.fr/git/zephir-connect.git && \
      cd zephir-connect && \
      git checkout develop
      
    • Builder

      make install
      
    • Installer le minion

      install_zephir_minion
      

      La commande est dans le PATH.

    • Connecter le module à Zéphir

      zephir-connect /root/peer_conf.json
      

      La passphrase fournie lors de la création du serveur sur le Zéphir est demandée.

    • Vérifier l’état du minion

      service salt-minion status
      
  • Sur l’application Zéphir, revenir sur l’onglet Serveurs, et recharger la page du serveur nouvellement appairé. Constater l’affichage des données d’environnement du serveur.

    L’appairage est effectif.

Configurer le serveur

  • À nouveau depuis l’interface Zéphir, sur la page du serveur créé, cliquez sur Éditeur de configuration afin de créer une configuration pour le serveur. L’application de configuration du serveur apparait.
  • Configurer le serveur
  • Enregistrer la configuration
  • En retournant sur la page du serveur, cliquer sur Déploiement de la configuration pour envoyer le fichier de configuration sur le serveur appairé. Cliquer sur le bouton Déployer la configuration. Une nouvelle tache apparait dans l’historique des opérations indiquant que le déploiement est en cours.
  • Une fois la configuration déployée, retourner sur la page du serveur. Cliquer sur Appliquer la configuration, Zéphir envoie une commande au serveur pour lui faire exécuter un la commande reconfigure.
  • Une fois l’exécution de la commande reconfigure terminée, une entrée dans l’historique des opérations propose d’afficher les résultats de la commande.
  • Le serveur est maintenant configuré.

Architecture

Vue d’ensemble des microservices de l’application :

_images/vue_globale.png