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