Installation

Once the prerequisites are in place (Ansible, Docker Swarm, and cluster initialization), you can customize the INFRA deployment using Ansible variables. These options allow you to configure user portals, the database, signal servers, SSL certificates, etc.

Tip

Installation parameters must be defined before running the final installation command.

Important

Before the final installation of the INFRA environment, all target machines must be able to access the images required for their deployment.
For Docker image management, refer to the Registry and Image Management documentation of the INFRA environment.

Create a minimal playbook

For the rest of the installation, create a playbook named reemo-infra.yml as referenced in this documentation.

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

    roles:
        - reemo-infra

Minimal inventory file

For the rest of the installation, create an inventory file named inventory.yml as referenced in this documentation. This minimal file is described in the Prerequisites page of the INFRA environment.

It contains the server infrastructure description and the Reemo license key in base64 format.

Single server example:

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

    infra_manager:
        hosts:
            infra_manager1:
                ansible_host: "10.0.0.1"

Portal and SSL certificates

The reemo-infra Ansible role lets you configure the exposure of the Portal (URL, IP filtering, physical separation, SSO per portal) as well as the management of SSL certificates used by Traefik and for internal mTLS communications. These options are detailed in the following pages:

  • User and Administrator Portal: portal URLs, IP filtering, port management, physical separation, portal dedicated to an SSO, signal server per portal, filtering user roles.

  • SSL Certificates: Traefik certificates (default, local, already present on the server) and internal PKI for mTLS communications (default PKI, automatically generated CA, manual configuration).

Signaling Services

Signaling services are used for registering Reemo Agents on the platform, and for exchanging information required to establish a connection between the user and their resources. These services are unique, and in a Docker Swarm environment you will see, depending on your architecture, several Signaling services but always with a single replica.

Example:

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

Signaling services will always be named reemo_signal followed by a number.

Ports

By default Signaling services listen on port 8443 through the Traefik service which holds the SSL certificate. This port is accessible by Reemo Agents. Users will reach it via the Portal service on port 443.

SSL

Certificates are managed the same way as for the portals: one certificate for Traefik, and a second for communication between Traefik/Portal and Signaling services.

Multi-signal

In a standard installation, Reemo agents register with the signaling services that are shared by the different user access portals. For a complete separation of portals and agents, it is possible to configure a multi-signal installation — see User and Administrator Portal (Signal Server per Portal).

CRON

Several CRON services are used in a Reemo platform (ghost container cleanup, log purging, LDAP synchronization). These options, along with alternative LDAP synchronization and Docker image preloading, are detailed in CRON, LDAP and Provisioning.

Database

The INFRA environment requires a database which can be internal or external to Docker Swarm.

The configuration of the database engine (internal or external: MySQL, PostgreSQL, SSL support, NDBCLUSTER) is detailed in Database.

Database initialization

Before it can be used, the database must be initialized.
Database initialization also initializes the default values of the Reemo instance, which are then stored in the database.

The variables you can set during database initialization (password policy, RELAYWS servers, provisioning zones) are detailed in Initialization Variables.

Database initialization occurs during the final installation using INIT_DB=true.

Note

Database initialization must be performed only once.

Final installation

Once your inventory is complete and all the necessary options added, run the final installation of the INFRA environment and initialize the database with the reemo-infra Ansible role.

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

Warning

This command installs the environment and initializes the database. Run it only once.