Nous allons voir dans cet article comment déployer une GED avec Alfresco en production en utilisant Docker et Rancher.
Ce déploiement prend quelques minutes à mettre en oeuvre si vous avez déjà un cluster Rancher et un pool de stockage déjà configuré avec GlusterFS.

Nous n'allons pas expliquer dans cet article la mise en oeuvre de Rancher et du pool de stockage.

Mais au fait, c'est quoi Afresco et une GED ? Voici un extrait de Wikipedia :

Alfresco est un système de gestion de contenu (en anglais ECM pour Enterprise Content Management) créé par Alfresco Software en 2005 et distribué sous licence libre. Il se distingue des autres systèmes par sa forme. En effet, il peut se comporter sur un ordinateur comme un disque virtuel (se montant et se démontant), ce qui permet à l'utilisateur de partager des fichiers simplement en les déplaçant sur le disque dédié.

Alfresco est à la base le résultat des travaux d'une équipe qui provient massivement de Documentum, leader historique du marché, mais aussi d'Interwoven pour la partie gestion de contenu web. Un cofondateur d'Alfresco est aussi cofondateur de Documentum.

La mission que se donne Alfresco est : « ouvrir le monde de la Gestion de Contenu afin d’augmenter les innovations grâce à la participation de la communauté et au libre accès au code source, et viser à fournir une application complète à moindre coût, et avec plus d'agilité »1.

Il compte 7 millions d'utilisateurs avec 4 milliards de documents gérés et plus de 2500 entreprises réparties sur 180 pays.

Voici quelques liens utiles :

Sommaire

Déployer Alfresco

Instancier Alfresco

Connectez vous dans Rancher, puis allez dans l'environnement souhaité (Default par défaut). Ensuite allez dans "Application" puis sélectionnez "Catalog".

Rancher - Catalog section

Une fois dans le catalogue, sélectionnez Alfresco (dans Community) :

Rancher - Alfresco in catalog

Ensuite, modifiez le mot de passe pour la connexion de la base de données, puis décochez "start services after creating" (nous allons modifier les services avant de les démarrer) et cliquez sur "Launch".

Rancher - Alfresco parameters

Votre application (Stack) "alfresco" est maintenant instanciée dans Rancher.

Mise à jour de la stack Alfresco

Mise à jour du service Postgres

Upgradez le service "postgres" afin de lui configuré un stockage persistant pour ces données et aussi indiquer à l'ordonnanceur où déployer ce service.

Rancher - Upgrade Postgres

Allez dans "Advanced Options", puis dans l'onglet "Volumes". Ajoutez un volume pour stocker les données de PostgreSQL dans le pool de stockage GlusterFS :

Vous devez adapter le nom du "Volume Driver" en fonction de votre context. "convoy-gluster" est le nom par défaut quand vous déployez le pool de stockage"

Rancher - Upgrade Postgres - Volumes

Pour finir, allez dans l'onglet "Scheduling" pour configurer vos règles d'ordonnancement et cliquez sur "Upgrade".

Dans mon contexte, je déploie les applications et les bases de données sur les nœuds qui ont pour label "type: app"

Rancher - Ugrade Postgres - Scheduling

Mise à jour du service Alfresco

Upgradez le service "alfresco" afin de lui configurer un stockage persistant pour ces données, lui indiquer l'URL public et aussi indiquer à l'ordonnanceur où déployer ce service.

Rancher - Upgrade Alfresco

Supprimez l'entrée "Port Map" car nous allons utiliser le Load Balancer

Allez dans "Advanced Options", puis dans l'onglet "Command".

Rancher - Upgrade Alfresco - Command

Nous allons indiquer l'URL public via les variables d'environnement :

  • REVERSE_PROXY_URL: https://ged.my-domain.com
  • ALFRESCO_HOSTNAME: ged.my-domain.com
  • ALFRESCO_PORT: 443
  • ALFRESCO_PROTOCOL: https
  • SHARE_HOSTNAME: ged.my-domain.com
  • SHARE_PORT: 443
  • SHARE_PROTOCOL: https

Ensuite, allez dans l'onglet "Volumes". Ajoutez un volume pour stocker les données d'Alfresco dans le pool de stockage GlusterFS :

Vous devez adapter le nom du "Volume Driver" en fonction de votre context. "convoy-gluster" est le nom par défaut quand vous déployez le pool de stockage"

Rancher - Upgrade Alfresco - Volumes

Pour finir, allez dans l'onglet "Scheduling" pour configurer vos règles d'ordonnancement et cliquez sur "Upgrade".

Dans mon contexte, je déploie les applications et les bases de données sur les nœuds qui ont pour label "type: app"

Rancher - Upgrade Alfresco - Scheduling

Ajout d'un service de redirection HTTP vers HTTPS

Par défaut, ALfresco Share redirige les utilisateurs vers HTTP (notamment après l'authentification). C'est pour cela que nous ajoutons le service "https-redirector" à la stack.

Cliquez sur "Add Service", puis nommez le service "https-redirector". Ensuite ajoutez l'image "meltwater/https-redirector:latest" et pour finir cliquez sur "create".

Vous pouvez modifier l'onglet "Sheculing" en fonction de votre contexte.

Ajout d'un Load Balancer

Nous allons ajouter un Load Balancer comme point d'entré pour les utilisateurs.

Ce Load Balancer aura deux roles dans notre context :

  • Apporter une terminaison https
  • Load Balancer les utilisateurs sur plusieurs instances d'Alfresco

Allez dans votre stack "Alresco" et ajoutez un "Load Balancer"

Rancher - Add Load Balancer

Voici les paramètres principaux du Load Balancer :

Alfresco sera accessible en utilisant l'URL https://ged.my-domain.com/share L'accès en HTTP sera redirigé automatiquement sur le HTTPS.

Rancher - Load Balancer - Main setting

Ensuite configurez l'onglet "SSL Terminaison"

Vous devez déjà avoir ajoutez votre certificat SSL dans le menu "Infrastructure / Certificats"

Rancher - Add load Balancer - SSL terminaison

Puis configurez l'onglet "Stickiness" avec les paramètres suivants :

Rancher - Load Balancer - Stickiness

Stikiness permet à un utilisateur d'être toujours redirigé vers le même serveur Alfresco (très utile pour les sessions utilisateurs)

Enfin, configurez l'onglet "Sheduling" puis cliquez sur "Save"

Dans mon contexte, les Load Balancer sont déployés sur les nœuds qui ont pour label "type: lb".

Rancher - Load Balancer - Scheduling

Nous allons maintenant ajouter une instance d'Alresco ce qui fera au total 2 instances.

Rancher - Alfresco - Edit

Dans "Scaler", mettez 2 puis cliquez sur "Save"

Rancher - Alfresco - Edit scale

Félicitation, votre ALfresco est opérationnel.