diff --git a/doc/202311-POC-Envole9.html b/doc/202311-POC-Envole9.html new file mode 100644 index 0000000..169746a --- /dev/null +++ b/doc/202311-POC-Envole9.html @@ -0,0 +1,552 @@ + + + +202311-POC-Envole9.md + + + + + + + + + + + + +
+

logo

+
+
+

POC Envole

+
+

Introduction

+

Envole est une solution qui propose un ensemble d'applicatifs web fédérés autour d'un annaire afin de gérer l'identité ainsi qu'un SSO afin de gérer l'authentification.

+

Il s'appuit sur la distrution EOLE pour déployer ses différents composants.

+

Envole rencontre depuis des années des problèmatiques :

+ +

Ce document va chercher à évaluer la possibilité de conteneriser les applications Envole, afin qu'elles puissent fonctionner le moins possible en contrainte avec la version d'Eole

+

Architecture

+

EoleBase

+

La présente étude part du principe qu'Envole ne serait plus installé sur une instance Scribe mais sur une installation EoleBase d'Eole

+

Avantages

+ +

Inconvéhients

+ +
+
+

Paquet Debian

+

Contrairement à la précédente logique Envole, il n'y aurait qu'un seul paquet Debian pour Envole. Il n'installerait pas les sources des applications, mais uniquement

+ +

POC

+

Afin de s'assurer de la faisabilité d'un tel changement, un POC a été initié, dans le cadre des éléments précédents cités. La première question fut de savoir quelle technologie de conteneurisation serait à utiliser PODMAN ou DOCKER, et dans leur logique de composer PODMAN-COMPOSE ou DOCKER-COMPOSER.

+

PODMAN vs DOCKER sur Eole

+

PODMAN

+

Eole a intégré à partir de la 2.9 dans sa distribution podman. Ce qui de prime abord devrait-être la technologie à utiliser, sauf que

+ +

DOCKER

+

Eole n'a pas intégré nativement docker. Mais il est tout à fait possible de l'installer par ses propres moyens sauf que

+ +
+
+

CONCLUSION

+

Quoi qu'il arrive, une intégration compléte que cela soit avec Podman ou avec Docker, demandera un travail d'intégration d'Eole

+ +

Ma préférence va malgrés tout sur Docker, il est plus souple moins verbeux et me semble plus fiable à long terme. Il serait possible de maitenir les deux solutions en parrallèle avec un effort supplémentaire d'intégration et de maintenance.

+

POC

+

Sources

+

Les sources du POC sont disponible ici
+https://forge.cadoles.com/Envole/envole

+

Elles sont pour l'instant hébergé à Cadoles pour des raisons de simplicité de mise en oeuvre, mais à terme elles seront bien stockées chez Eole

+

Repository

+

Certaines images sont hébergées elles aussi sur un repository public de Cadoles. Là aussi pour des raisons de simplicité de mise en oevre, mais à terme Eole devra fournir un repository propre aux images Envole.

+

Les images en questions sont celles des applications maintenues par Envole, en l'occurence pour l'instant uniquement Ninegate. Mais à terme pourra aussi y figurer des images d'applications tiers sur lesquelles nous aurions besion d'altérer légèrement le comportement.

+

Installation du POC

+

1- Instancier un eolebase 2.9

+

2- Installer eole-web

+
apt-get install eole-web +Genconfig +Services > Activer l'interface web de l'EAD = non +Services > Activer le serveur de bases de données MySQL = non +Services > Activer l’interface d’administration du module (EAD3) = non +Applications Web > Nom de domaine des applications web = mondomaine.fr +save & quit +Reconfigure +
+
+
+

3- Installer docker & docker-compose

+
apt install git make apt-transport-https ca-certificates curl gnupg-agent software-properties-common +mkdir -p /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg +echo \ +"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ +$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null +apt update +apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-compose +
+

4- Installer Envole

+
cd /root +mkdir git +cd /root/git +git clone https://forge.cadoles.com/Envole/envole.git +cd /root/git/envole +make install +
+

5- Configurer Envole

+

Le dictionnaire d'Envole dans genconfig est initalisé pour que l'on y indique un scribe distant.

+

6- Reconfigure

+
+
+

Complément sur variables Genconfig

+
+

genconfig

+
+
+
+

Maître de l'identité

+ +

Mode d'Authentification
+Il n'y a que Ninegate qui pour l'instant peut faire varier son mode d'authentification
+A l'avenir on pourrait implémeter d'autre méthode d'authenfication, l'OPENID ou le SAML par exemple.

+ +

Server CAS local
+Si oui un conteneur Keycloak sera instancié qui sera préparamétré pour utiliser le procotole CAS en lien avec l'annuaire soit local soit distant déclaré dans le genconfig

+

ATTENTION = une foi instancié le serveur Keycloak ne prendra pas en compte des changement de paramétrage lié à l'annuaire

+

Base de Données
+Si désactivé, l'ensemble des applications nécessitant une base de données ne pourront être activée.

+

Si distant, Envole ne fera pas le travail de créer les utilisateurs de base de données ainsi que les bases de données applicatives en elles-même. Cela sera à la charge d'un administrateur de réaliser ces tâches.

+

ATTENTION = une foi instancié les changement de login/password d'accès à la BDD ne seront pas appliqués

+

Annuaire
+Le cas d'un annuaire local n'est utile que si le maître de l'authenfication est local.

+

ATTENTION = une foi instancié les changement de login/password d'accès à la BDD ne seront pas appliqués

+

Secrets
+L'ensemble des secrets nécessaires. Comme indiqué plus haut un grand nombre d'entre eux ne peuvent être modifié après instanciation du service associé au secret : BDD / Annuaire / Keycloak

+

Nextcloud
+Possiblité d'indiqué un partage Samba pour générer automatiquement un partage externe dans Nextcloud

+
+
+

Conclusion

+

Ce POC démontre qu'un modèle conteneriser d'Envole est tout à fait possible. Mais

+

Ce que le POC à montrer comme problème

+ +

Ce que ne fait pas le POC

+ +

Ce que le POC n'a pas du tout aborder

+ + + + diff --git a/doc/etude.md b/doc/202311-POC-Envole9.md similarity index 100% rename from doc/etude.md rename to doc/202311-POC-Envole9.md diff --git a/doc/202311-POC-Envole9.pdf b/doc/202311-POC-Envole9.pdf new file mode 100644 index 0000000..01bcb7d Binary files /dev/null and b/doc/202311-POC-Envole9.pdf differ