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.
Attention
Pour le moment, la version publiée d'EoleDB gère uniquement les bases de données MySQL et PostgreSQL.
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 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[1] 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