Installation

Une fois les prérequis en place (Ansible, Docker Swarm et initialisation du cluster), il est possible de personnaliser le déploiement de INFRA à l’aide de variables Ansible. Ces options permettent notamment de configurer la gestion des portails utilisateurs, de la base de données, des serveurs signaux, des certificats SSL etc.

Tip

La configuration des paramètres d’installation doit être définie avant l’exécution de la commande d’installation finale.

Important

Avant l’installation finale de l’environnement INFRA, toutes les machines cibles doivent pouvoir accéder aux images nécessaires à leur déploiement.
Pour la gestion des images Docker, merci de vous référer à la documentation sur la Gestion du Registre et des Images de l’environnement INFRA.

Création d’un playbook minimal

Pour la suite de l’installation, il est nécessaire de créer un playbook qui sera nommé reemo-infra.yml dans le reste de cette documentation.

- name: Installation Reemo Infra Server
    hosts: infra_manager
    gather_facts: yes

    roles:
        - reemo-infra

Fichier inventaire minimal

Pour la suite de l’installation, il est nécessaire d’avoir créé un inventaire qui sera nommé inventory.yml dans le reste de cette documentation. Ce fichier minimal est décrit dans la page Prérequis de l’environnement INFRA.

Il contient la description de l’infrastructure des serveurs ainsi que la clé de licence Reemo au format base64.

Exemple sur un seul serveur:

all:
    vars:
        API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="

    infra_manager:
        hosts:
            infra_manager1:
                ansible_host: "10.0.0.1"

Portail et certificats SSL

Le rôle Ansible reemo-infra permet de configurer l’exposition du Portail (URL, filtrage IP, séparation physique, SSO par portail) ainsi que la gestion des certificats SSL utilisés par Traefik et pour les communications internes mTLS. Ces options sont détaillées dans les pages suivantes :

  • Portail utilisateur et administrateur : URL des portails, filtrage IP, gestion des ports, séparation physique, portail dédié à un SSO, serveur signal par portail, filtrage des rôles utilisateurs.

  • Certificats SSL : certificats Traefik (par défaut, local, déjà présent sur le serveur) et PKI interne pour les communications mTLS (PKI par défaut, CA auto-générée, configuration manuelle).

Services de Signalisation

Les services de Signalisation sont utilisés pour l’enregistrement des Agents Reemo sur la plateforme, mais aussi pour l’échange d’informations nécessaires à l’établissement d’une connexion entre l’utilisateur et ses ressources. Ces services ont la particularité d’être unique et dans un environnement Docker Swarm vous verrez apparaitre en fonction de votre architecture plusieurs services de Signalisation avec toujours un seul replica.

Exemple:

ID             NAME            MODE        REPLICAS  IMAGE
...
 g8hmzpicyq2o   reemo_signal1   replicated  1/1      registry.reemo.io/reemoinfrasignal                   
 s105if31h6l0   reemo_signal2   replicated  1/1      registry.reemo.io/reemoinfrasignal

Tip

Les services de Signalisation seront toujours nommés reemo_signal suivi d’un chiffre.

Ports

Par défaut les services de Signalisation écoutent sur le port 8443 à travers service Traefik qui portera le certificat SSL. Ce port sera accessible par les Agents Reemo. Les utilisateurs le contacteront par le service Portal sur le port 443

SSL

Les certificats sont gérés de la même façon que pour les portails, un premier certificat pour le Traefik, un second pour la communication entre Traefik/Portal et les services de Signalisation.

Multi-signal

Dans une installation classique, les agents Reemo viennent s’enregistrer sur les services de signalisation qui sont partagés par les différents portails d’accès utilisateurs. Pour une séparation complète des portails et des agents, il est possible de configurer une installation multi-signal — voir Portail utilisateur et administrateur (Serveur Signal par Portail).

CRON

Plusieurs services CRON sont utilisés dans une plateforme Reemo (gestion des conteneurs fantômes, purge des logs, synchronisation LDAP). Ces options, ainsi que la synchronisation LDAP alternative et le préchargement des images Docker, sont détaillées dans CRON, LDAP et provisioning.

Base de données

L’environnement INFRA nécessite une base de données qui peut être interne ou externe à Docker Swarm

La configuration du moteur de base de données (interne ou externe : MySQL, PostgreSQL, support SSL, NDBCLUSTER) est détaillée dans Base de données.

Initialisation de la base de données

Avant de pouvoir être utilisée, la base de données nécessite d’être initialisée.
L’initialisation de la base de données permet en même temps d’initialiser les valeurs par défaut de l’instance Reemo qui seront ensuite stockées dans la base de données.

Les variables qu’il est possible de configurer à l’initialisation de la base de données (politique de mot de passe, serveurs RELAYWS, zones de provisioning) sont détaillées dans Variables d’initialisation.

L’initialisation de la base de données se fait lors de l’installation finale en utilisant la variable INIT_DB=true

Note

L’initialisation de la base de données n’est à exécuter qu’une seule fois.

Installation finale

Une fois votre inventaire terminé et toutes les options nécessaires ajoutées, vous pouvez effectuer l’installation finale de l’environnement INFRA et l’initialisation de la base de données avec le rôle Ansible reemo-infra.

ansible-playbook -i inventory.yml playbooks/reemo-infra.yml --extra-vars "INIT_DB=true"

Warning

Cette commande installe l’environnement et initialise la base de données. Elle n’est à exécuter qu’une seule fois.