Installation

Une fois les prérequis en place (Ansible, Docker Swarm et initialisation du cluster), il est possible de personnaliser le déploiement de PROVISION à l’aide de variables Ansible. Ces options permettent notamment de configurer la gestion des certificats SSL et le comportement de Nginx.

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 PROVISION, toutes les machines cibles doivent pouvoir accéder aux images des conteneurs à déployer pour les utilisateurs.
Pour la gestion des images Docker, merci de vous référer à la documentation sur la Images des conteneurs utilisateurs de l’environnement PROVISION.

Configuration de Nginx

Un service Nginx est requis sur chaque noeud PROVISION pour communiquer avec l’infrastructure.
Le rôle reemo-provision installe et configure Nginx automatiquement.

Voici les variables qui peuvent être configurées :

  • PROVISION_NGINX_PORT : port d’écoute (par défaut 8443)

  • PROVISION_NGINX_SSL_VERIFY_CLIENT : activer/désactiver vérification SSL

  • PROVISION_NGINX_SSL_CLIENT_S_DN : DN attendu dans les certificats clients

Certificats SSL

Nginx

Pour sécuriser les échanges, les micro-services communiquent entre eux en mTLS, ce qui impose une gestion des certificats.

Deux modes sont possibles :

Utilisation automatique

Par défaut, le rôle Ansible reemo-provision utilise automatiquement la PKI générée par le rôle reemo-infra. Dans ce cas, aucune configuration supplémentaire n’est nécessaire dans l’inventaire : les certificats sont déjà créés et disponibles dans le répertoire produit par reemo-infra.

Configuration manuelle

Il est aussi possible de générer soi-même les certificats SSL pour l’URL : reemo_provision

Il faut ensuite renseigner dans l’inventaire Ansible les chemins locaux vers la clé et le certificat. Ils seront copiés automatiquement vers le cluster Docker Swarm par le rôle reemo-provision.

Exemple :

provision:
    vars:
        CA_SSL_CRT_LOCALPATH: "/local/path/ca.crt"
        PROVISION_SSL_CRT_LOCALPATH: "/local/path/reemo_provision.crt"
        PROVISION_SSL_KEY_LOCALPATH: "/local/path/reemo_provision.key"
    children:
        provision_manager:
            hosts:
                provision_manager1:
                    ansible_host: "10.10.0.1"
        provision_worker:
            hosts:
                provision_worker1:
                    ansible_host: "10.10.0.2"

Installation finale

Une fois votre inventaire terminé, vous pouvez effectuer l’installation finale de l’environnement PROVISION avec le rôle Ansible reemo-provision.

ansible-playbook -i inventory.yml playbooks/reemo-provision.yml