Si vous n'avez pas encore construit les images, vous devez le faire au préalable. Construire les images
Le mode avancé permet d'installer autant d'instances que nécessaire sur une même machine. Elle offre aussi une interface utilisateur, mais elle demande (un peu) plus de travail.
Si vous avez déjà installé dremgr dans le mode simple, suivez attentivement les instructions pour ne pas perdre la configuration courante
Le mode avancé permet de gérer plusieurs instances. Chaque instance correspond à
un profil: prod, test, etc... Le fichier dremgr.env
définit l'ensemble des
profils qui sont pilotés par l'installation.
Commencer par copier le fichier d'exemple
cp documentation/dremgr.env.sample dremgr.env
Si vous avez déjà installé dremgr dans le mode simple, reportez les paramètres
déjà saisis dans prod_profile.env
, notamment POSTGRES_PASSWORD
,
FE_PASSWORD
, prod_DRE_URL
, prod_DRE_PASSWORD
et DREADDON_URLS
La variable APP_PROFILES
liste les profils supportés. Pour chacun de ces
profils, un ensemble de variable doit être défini plus bas dans le fichier. On
peut rajouter autant de profils que nécessaire, mais il faut définir les
variables avec le préfixe correspondant en prenant exemple sur la section "test"
Au minimum, modifiez les variables dont la valeur est XXX_a_modifier
. Les
variables suivantes peuvent être configurées le cas échéant:
<profil>_DRE_URL
<profil>_DRE_USER
<profil>_DRE_PASSWORD
: URL, utilisateur et mot de passe permettant de télécharger les dumps DRE
DBVIP
: Adresse sur laquelle les instances de bases DRE sont disponibles. Laisser vide
pour écouter sur toutes les interfaces.
POSTGRES_PASSWORD
FE_PASSWORD
: mot de passe respectivement de l'utilisateur administrateur et de
l'utilisateur en lecture seule de la base de données. Dans la configuration
par défaut, ces mots de passe sont partagés par toutes les instances.
ADDON_URLS
: Liste d'URLs de dépôts git contenant des "addons" de dremgr. Par défaut, les
deux URLs suivants sont listés:
PC-Scol/dreaddon-documentation.git
documentation technique et fonctionnelle de DREPC-Scol/dreaddon-pilotage.git
schéma "pilotage" développé par l'UPHF, base de l'univers BO livré aussi par l'UPHF
D'autres add-ons peuvent être spécifiés au fur et à mesure qu'ils sont rendus disponibles.
Cf la documentation de dreaddons pour les détails
Il y a d'autres paramètres configurables. Consulter la liste complète des paramètres
Ensuite, il faut définir autant de fichiers <profil>_profile.env
que de
profils mentionnés dans le fichier dremgr.env
. Chaque fichier pourrait être
indépendant, mais il est plus simple de tout définir dans le fichier dremgr.env
et de faire des liens symboliques.
En l'occurrence, comme les profils prod et test sont définis, on fait les liens
symboliques correspondants. ATTENTION! Si le mode simple avait été utilisé
auparavant, le fichier prod_profile.env
précédent est perdu au profit du
nouveau lien symbolique. Assurez-vous d'avoir reportés les paramètres dans
dremgr.env
avant de lancer ces commandes
ln -sf dremgr.env prod_profile.env
ln -sf dremgr.env test_profile.env
Créer le réseau mentionné dans la configuration (variable DBNET
)
docker network create --attachable dremgr_db
Puis démarrer toutes les instances correspondant à chaque profil défini
./dbinst -A
Attention! si l'instance de prod en mode simple avait déjà été démarrée, il faut la remplacer par les nouvelles instances, i.e
# forcer le redémarrage
./dbinst -AR
Notez aussi que les comptes ne sont pas recréés si l'instance de prod en mode simple avait déjà été démarrée.
Maintenant que les instances de bases de données sont configurées, il faut configurer les services frontaux. Ces services frontaux comprennent:
- un proxy pgbouncer qui permet de servir plusieurs bases postgresql sur la même adresse IP.
- pgAdmin pour accéder à la base de façon graphique
- adminer, alternative pour accéder à la base de façon graphique
- une application web destinée aux utilisateurs autorisés qui affiche les informations de connexion à la base de données, et met à disposition de la documentation technique et/ou fonctionnelle
Pour la connexion à l'application web, éditez les fichiers suivants:
-
config/apache/mods-available/auth_cas.conf
Par défaut, l'authenfication se fait par CAS. Ce fichier sert à indiquer l'adresse du serveur CAS. -
config/apache/authnz.conf
Ce fichier détaille les utilisateurs autorisés. Par défaut, seul l'utilisateur hypothétiquedreuser
est autorisé. Lister les utilisateurs de cette façon:Require user bob alice
Il est aussi possible d'autoriser sur la base d'attributs fournis par le serveur CAS, cf https://github.com/apereo/mod_auth_cas. Par exemple, pour autoriser tous les comptes dont l'attribut
authzApp
vautdremgr
, il faudrait une configuration de ce type:Require cas-attribute authzApp:dremgr
Typiquement, on autorisera sur l'appartenance à un groupe via l'attribut
memberOf
. Bien entendu, il faut configurer le serveur CAS pour servir les attributs nécessaires.
Par défaut, le service web sera accessible sur http://localhost:7081. Pour
changer cette valeur, éditer le fichier dremgr.env
et configurer les variables
LBHOST
et LBHTTP
Pour configurer l'accès en HTTPS, envoyer un message sur le forum pour avoir la procédure exacte.
Ensuite, démarrer les services frontaux
./dbfront
./webfront
En cas de changement de configuration, utiliser l'option -R pour redémarrer les services concernés
# exemple: forcer le redémarrage après la modification du paramétrage web
./webfront -R
Visiter http://localhost:7081 pour connaitre les paramètres de connexion à chaque instance de base DRE. par défaut, il s'agit de l'adresse locale:
# prod
psql -d "host=localhost port=5432 user=reader password=PASSWORD dbname=dre"
# test
psql -d "host=localhost port=5432 user=reader password=PASSWORD dbname=test_dre"
Bien entendu, pour le moment, les bases ne contiennent aucune donnée. On peut forcer le téléchargement et l'importation:
./dbinst -Ai
Sinon, le téléchargement et l'importation se fait tous les jours à l'heure
définie dans la variable CRON_PLAN
c'est à dire par défaut 5h30
Pour remplacer le logo par celui de votre université dans l'application web, il
faut remplacer le fichier public/brand.png
par votre propre image au format
PNG (il faut garder le même nom)
cp ~/path/to/monlogo public/brand.png
L'image DOIT avoir une hauteur de 50 pixel. La largeur importe peu.
La release courante est sur la branche master
. Pour tester des fonctionnalités
qui ne sont pas encore stabilisées, il faut basculer sur la branche develop
ou
une autre branche qui vous est indiquée.
Par exemple, pour basculer sur la branche develop
, il faut le considérer comme
une sorte de mise à jour
cd dremgr
# mettre à jour le dépôt
git pull
# s'assurer qu'on est bien sur la bonne branche
git checkout develop
# reconstruire les images puis redémarrer les services concernés
./dremgr -rb
La commande git checkout develop
permet de basculer sur la branche de
développement. Dans le même ordre d'idée, git checkout master
permet de
revenir sur la branche stable, mais attention aux effets de bord si la
branche develop
contient des modifications profondes.
En effet, la branche develop
contient toujours une version égale ou plus
récente que celle de la branche master
. Les mises à jour des versions
anciennes vers une version plus récente sont supportées, mais les mises à jour
"dans l'autre sens" d'une version récente vers une version plus ancienne NE SONT
PAS supportées.
En définitive, basculer sur la branche develop
ne devrait probablement pas
être effectué en production.
-- coding: utf-8 mode: markdown -- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary