Externalisation des bases de données MySQL avec EoleDB
EoleDB est disponible depuis la version 2.5.2 d'EOLE. C'est une re-implémentation de l'ancien gestionnaire des bases de données EOLE (eole-sql
) dont les objectifs principaux sont :
n'utiliser qu'un seul fichier de configuration ;
supporter nativement plusieurs types de bases de données (MySQL, PostgreSQL, SQLite, ...) ;
supporter nativement l'externalisation des bases de données sur d'autres serveurs ;
ne plus avoir à fournir des scripts python dans les paquets d'application web du projet EOLE pour pouvoir générer ou mettre à jour des bases de données (cf eole-sql :
/usr/share/eole/applications/gen/
,/usr/share/eole/applications/passwords/
,/usr/share/eole/applications/updates/
).
EoleDB rend possible l'externalisation des bases de données d'un module EOLE.
Remarque
Pour le moment, EoleDB gère uniquement les bases de données MySQL[1] et PostgreSQL[2].
Installation d'EoleDB
EoleDB est pré-installé sur les modules où des applications web le requièrent.
Sur les autres modules l'installation d'EoleDB se fait manuellement sur le serveur qui héberge l'application web avec la commande apt-eole :
# apt-eole install eole-db
Configuration
Par défaut le serveur de base de données est paramétré comme étant local. Dans le cas où le serveur est distant quelques variables sont à renseigner.
Adresse du serveur de base de données
: adresse IP, nom de machine ou nom de domaine du serveur de base de données distant. Cette valeur est utilisée pour toutes les applications web qui ne définiront pas elles-mêmes un serveur de base de données.Port du serveur de base de données
: port du serveur de base de données utilisé, par exemple3306
pour le serveur MySQL fourni par EOLE.Nom d'utilisateur d'administration
: identifiant du gestionnaire de la base de données distante.Fichier de mot de passe
: chemin d'accès vers le fichier qui contient le mot de passe du gestionnaire, par exemple/root/bdpass.txt
. Ce fichier doit être accessible par EoleDB, idéalement le fichier doit avoir les droits 600.Machines qui peuvent utiliser le serveur de BDD
: permet d'autoriser des machines à accéder à l'administration des bases distantes #fixme, si rien n'est renseigné l'adresse IP du serveur utilisant EoleDB est ajoutée automatiquement dans le fichier de configuration.
Exemple
dbhost: 192.168.0.24
dbport: 3306
dbroot: root
client_hosts: ['192.168.0.26']
dbrootpwd: /root/bdpass.txt
Les application web disponible sur EOLE fournissent un fichier de configuration au format YAML[3] qui surcharge le fichier de configuration principal d'EoleDB.
Ces fichiers de configuration spécifiques aux applications redéfinissent le comportement par défaut d'EoleDB, ils sont stockés dans /etc/eole/eole-db.d/
.
Pour des raisons pratiques, EoleDB réalise également le changement de mots de passe dans les fichiers de configuration des applications, les mots de passes sont changées à chaque lancement de la commande eole_db_gen
.
Dans le cas de EOLE cette commande est lancée au minimum à chaque reconfigure.
Pour utiliser EoleDB il faut donc mettre en place les fichiers de configuration et utiliser la commande eole_db_gen
.
Sans paramètre, la commande eole_db_gen
utilise les paramètres par défaut.
Pour utiliser une autre configuration des options sont disponibles :
-h
,--help
: Affiche le message d'aide à l'utilisation de la commande ;-c
,--config
: Définir un fichier de configuration a utiliser à la place de/etc/eole/eole-db.conf
;-d
,--dbdir
: Définir un répertoire qui contiens les fichiers de configuration des applications qui n'est pas/etc/eole/eole-db.d/
;-b
,--backup-dir
: Définir un répertoire pour copier les sauvegardes des fichiers modifiés par EoleDB.
Truc & astuce
Pour obtenir de l'aide, utiliser la manuel de la commande :
# man eole_db_gen
Pour connaître les différents paramètres de la commande eole_db_gen :
# eole_db_gen --help