Démarrage rapide¶
L’objectif de ce guide est de réaliser une installation pas à pas d’une plateforme Reemo complète. A la fin de ce guide, vous aurez une plateforme complète prête à l’emploi à des fins de tests/audit/certification. Les environnements déployés dans ce guide sont: INFRA, PROVISION, RELAYWS.
1. Prérequis¶
1 machine « de travail » pour piloter Ansible.
3 serveurs/VMs cibles : infra, provision, relayws.
Accès SSH depuis la machine de travail vers chaque cible.
Accès aux rôles Ansible: reemo-infra, reemo-provision, reemo-relayws.
Une clé de licence d’instance Reemo.
Un compte d’accès au registre Docker Reemo.
2. Ressources minimales¶
INFRA : 4 vCPU, 8 Go RAM, 100 Go disque.
PROVISION : 8 vCPU, 16 Go RAM, 100 Go disque.
RELAYWS : 8 vCPU, 8 Go RAM, 50 Go disque.
OS Linux supporté (Ubuntu/Debian/RedHat).
3. Préparation machine de travail (Ansible)¶
La machine de travail est responsable du pilotage Ansible des serveurs cibles.
Installer Python, Docker, Ansible, dépendances:
Red Hat / RockyLinux¶
yum install ansible-core
yum install -y python3-pip
pip3 install docker
ansible-galaxy collection install community.docker
ansible-galaxy collection install community.crypto
Warning
Sous RockyLinux 9, il est nécessaire d’utiliser community.docker >= 3.10.2. Si besoin, forcez la mise à jour :
ansible-galaxy collection install community.docker --upgrade
Ubuntu¶
apt install ansible
apt install python3-docker
ansible-galaxy collection install community.docker
ansible-galaxy collection install community.crypto
4. Préparation serveurs cibles¶
Préparer 3 serveurs/VMs et configurer un accès SSH depuis votre machine de travail.
Serveur |
CPU |
RAM |
Disque |
|---|---|---|---|
INFRA |
4 |
8 |
100G |
PROVISION |
8 |
16 |
100G |
RELAYWS |
8 |
8 |
50G |
5. Playbooks et Arborescence de travail¶
Cette étape s’effectue sur la machine de travail.
Créer un dossier de déploiement simple.
mkdir -p /opt/reemo-deploy/{playbooks,ssl}
cd /opt/reemo-deploy
Créer 3 playbooks infra.yml, provision.yml, relayws.yml et un inventaire inventory.yml.
touch /opt/reemo-deploy/playbooks/{infra.yml,provision.yml,relayws.yml}
touch /opt/reemo-deploy/inventory.yml
infra.yml
- name: Installation Reemo Infra Server
hosts: infra_manager,portal_manager,api_manager
gather_facts: yes
roles:
- role: reemo-infra
become: yes
provision.yml
- name: Deploy Provision Reemo environment in swarm cluster
hosts: provision,provision_manager
gather_facts: yes
roles:
- role: reemo-provision
become: yes
relayws.yml
- name: Installation Reemo Relay WebSocket
hosts: relayws_manager
gather_facts: yes
roles:
- role: reemo-relayws
become: yes
7. Inventaire Ansible¶
Editer le fichier inventory.yml.
Remplacer toutes les IP et domaines par vos valeurs.
Générer les certificats pour le portail d’accès et l’environnement RELAYWS et fournir les certs TLS référencés.
all:
vars:
INITCA_ENABLE: "true"
LOCAL_PATH: "/opt/ssl/reemo"
# License key for this instance
API_LICENSE: "{{ LICENSING_KEY }}"
# Registry Configuration
REGISTRY_URL: "registrypriv.reemo.io"
REGISTRY_ENV: "reemoinfra"
REGISTRY_USERNAME: "{{ REGISTRY_USERNAME }}"
REGISTRY_PASSWORD: "{{ REGISTRY_PASSWORD }}"
# Portal dedicated to users
PORTAL_URL: "portal.domain.tld"
# Disallow built-in login, users will only log using SSO
PORTAL_DISALLOW_BUILT_IN: "true"
# Portal dedicated to admins
PORTALADMIN_URL: "portal-admin.domain.tld"
# Restrict IP addresses that get access to the admin portal
PORTALADMIN_URL_RESTRICT_IP: "255.255.255.255,255.255.255.255"
# INFRA environment
infra_manager:
hosts:
# Name this host freely
MY_REEMO_INFRA_HOST:
# Configure this with your instance IP address
ansible_host: "255.255.255.255"
ansible_user: "root"
TRAEFIK_SSL_CERTS:
- cert_file: "/opt/reemo-deploy/ssl/portal-cert.pem"
key_file: "/opt/reemo-deploy/ssl/portal-key.pem"
# PROVISION environment
provision:
children:
provision_manager:
hosts:
provision_manager1:
# Configure this with your provision IP address
ansible_host: "255.255.255.255"
# RELAYWS environment
relayws_manager:
vars:
TRAEFIK_SSL_CERTS:
- cert_file: "/opt/reemo-deploy/ssl/relayws-cert.pem"
key_file: "/opt/reemo-deploy/ssl/relayws-key.pem"
hosts:
relayws_manager1:
# Configure this with your RELAYWS IP address
ansible_host: "255.255.255.255"
8. Déploiement¶
Depuis le dossier reemo-deploy.
# 1) INFRA avec init DB + install docker
ansible-playbook -i inventory.yml playbooks/infra.yml --extra-vars "INIT_DB=true INSTALL_DOCKER=true"
# 2) PROVISION avec install docker
ansible-playbook -i inventory.yml playbooks/provision.yml --extra-vars "INSTALL_DOCKER=true"
# 3) RELAYWS avec install docker
ansible-playbook -i inventory.yml playbooks/relayws.yml --extra-vars "INSTALL_DOCKER=true"
Si des modifications sont apportées à l’inventaire, la mise à jour du deploiement s’effectue ensuite via:
# 1) Mise à jour INFRA
ansible-playbook -i inventory.yml playbooks/infra.yml
# 2) Mise à jour PROVISION
ansible-playbook -i inventory.yml playbooks/provision.yml
# 3) Mise à jour RELAYWS
ansible-playbook -i inventory.yml playbooks/relayws.yml
9. Vérifications¶
Conteneurs actifs sur chaque hôte :
docker ps
Accès portails :
Utilisateurs :
https://portal.domain.tldAdmin :
https://portal-admin.domain.tld
Restriction IP admin appliquée : vérifier
PORTALADMIN_URL_RESTRICT_IP.Certificats Traefik valides et montés.
10. Accès au portail d’administration¶
Naviguer vers https://portal-admin.domain.tld/register/admin pour enregistrer le premier compte d’administration d’instance.
Avec ce compte, vous pouvez désormais vous connecter pour administrer la plateforme Reemo.