...
De notre installation précédente, on conserve le apache avec le mod_shib sur le host ainsi que la base de données postgresql (veilliez à ne pas exposer le port AJP en dehors de la machine, avec docker, qui modifie le iptables à la volée, spécifier l'ip locale 127.0.0.1 est simple et efficace → ports: - '127.0.0.1:7009:7009' ).
On fait en sorte d'avoir un minimum de configurations sous forme de fichiers de configurations à plat ; dit autrement, on importe toutes les configurations dans la base de données.
On fait cela via l'interface graphique.
Depuis Home > Miscellaneous > Configure > Configuration files on importe les fichiers de notre répertoire conf
Seul le fichier morphString.properties restera en fichier à plat pour y indiquer une clef de chiffrement ; en plus de cette configuration, le grouper n'a besoin en configuration docker que des paramètres de connexion à la base de donnéesOn fait donc tourner sous docker les services grouper à proprement parler, avec un container par usage : 1 pour l'interface web, 1 pour le web-service et 1 pour le daemon.
Nous proposons ici l'usage d'un simple docker-compose.yml afin de tout consolider dans un seul fichier (mais on aurait pu se contenter d'appeler directement du docker simplement), un établissement ayant une infrastructure de conteneurisation se passera du docker-compose pour privilégier son orchestrateur en place.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
services:
grouper-ui:
image: "i2incommon/grouper:5.13.1"
restart: always
ports:
- '127.0.0.1:8009:8009'
command:
- ui
env_file: "grouper.env"
environment:
- GROUPER_TOMCAT_AJP_PORT=8009
volumes:
- ./slashRoot:/opt/grouper/slashRoot
- /var/log/grouper-ui-logs:/opt/grouper/logs
- ./logo_univrouen.png:/opt/grouper/grouperWebapp/grouperExternal/public/assets/images/logo_univrouen.png
grouper-ws:
image: "i2incommon/grouper:5.13.1"
restart: always
ports:
- '7009127.0.0.1:7009:7009'
command:
- ws
env_file: "grouper.env"
environment:
- GROUPER_TOMCAT_AJP_PORT=7009
volumes:
- ./slashRoot:/opt/grouper/slashRoot
- /var/log/grouper-ws-logs:/opt/grouper/logs
grouper-daemon:
image: "i2incommon/grouper:5.13.1"
restart: always
command:
- daemon
env_file: "grouper.env"
volumes:
- ./slashRoot:/opt/grouper/slashRoot
- /var/log/grouper-daemon-logs:/opt/grouper/logs |
...
| Bloc de code | ||
|---|---|---|
| ||
GROUPER_DATABASE_PASSWORD=esup
GROUPER_DATABASE_USERNAME=grouper
GROUPER_DATABASE_URL=jdbc:postgresql://grosville:5432/grouper
GROUPER_AUTO_DDL_UPTOVERSION=v5.*.*
GROUPER_TOMCAT_HTTPS_PORT=-1
GROUPER_WS_GROUPER_AUTH=true
GROUPER_LOG_TO_HOST=true
GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES=192.168.0.3
GROUPER_EXTRA_CATALINA_OPTS="-Duser.country=FR -Duser.language=fr -Duser.timezone=Europe/Paris" |
slashRoot/opt/grouper/grouperWebapp/WEB-INF/classes/morphString.properties
...
Non testé à ce jour (18/12/2024)
Purges
Purge des utilisateurs
La purge des utilisateurs qui ne sont plus présents dans le ldap et qui doivent être supprimés de Grouper ne se fait plus par gsh mais par le daemon de manière automatique via une tâche dédiée.
...
Des configurations dans la section "grouper.properties < Unresolvable Subject Deletion Utility" permettent d'ajuster le comportement de la tâche dédiée à ces purges.
Purge des logs
Grouper stocke en base de données les modifications des affectations de groupes, cela permet de consulter l'historique de ces mouvements, on y retrouve la date de la modification ainsi que l'utilisateur (ou système) qui a opéré le changement.
Cet historique est stocké dans la table grouper_audit_entry qui est finalement la plus gourmande en espace disque.
Par défaut, Grouper ne purge aucune de ces données, ce qui amène la base de données à grossir continuellement. Si vous souhaitez maintenir une base de données sur un volume contraint au fil des années, vous pouvez configurer loader.retain.db.audit_entry_no_logged_in_user.days
Ce nettoyage se fait au travers du daemon 'OTHER_JOB_cleanLogs' qui se fait par défaut une fois par jour et que vous pouvez actionner manuellement au besoin au travers de l'IHM toujours.
Debug
Si vous avez besoin de faire du debug pour détecter un comportement suspect ou un problème, le grouperdaemon peut se lancer en mode debug comme toute application Java, à vous ensuite d'utiliser un IDE (eclipse ou idea) permettant de positionner des breakpoints et autres.
...

