EOLE³ met à disposition des commandes permettant de sauvegarder le portail et sa base MongoDB ainsi que la configuration KeyCloak et sa base de donnéees PostgreSQL.
Il est possible de paramétrer l'exécution des sauvergardes via les fichiers de configuation YAML de l'outil EOLE³.
Pour automatiser la sauvegarde du portail Laboite et de sa base MongoDB, cela se passe dans la section backup
de laboite
.
laboite
backup:
enabled: true
schedule: 0 0 * * *
pvcSize: 50Gi
Pour automatiser celle de Keycloak et de sa base postgreSQL, c'est dans la sous-section backup
de database
dans keycloak
.
keycloak:
database:
backup:
enabled: True
schedule: 0 0 * * *
Afin de garantir la cohérence de la sauvegarde et de sa potentielle restauration, il est impétatif que la sauvegarde de Laboite et celle du Keycloak soient réalisées simultanément.
L'outil offre également la possibilité d'automatiser la sauvegarde du stockage S3 mais, sur une production, celui-ci est susceptible de contenir une grande quantité de données, on fera généralement confiance à l'exploitant pour effectuer ces opérations.
laboite
s3:
backup:
enabled: false
La commande eole3 backup
permet de lancer une sauvegarde manuellement.
Les outils backup
et restore
ont besoins des fichiers générés présents dans le dossier install
, sinon il est nécessaire d'utiliser l'option -o
si le dossier install
n'est pas présent dans le répertoire courant.
La commande suivante permet de sauvegarder le portail et ses composants d'infrastructures (keycloak, minio et mongodb) : eole3 backup socle -a save
Il est possible de sauvegarder des composants spécifiques : eole3 backup [addon|admin-tool|infra|ladigitale|socle] -n <component_name> -a save
CodiMD
: eole3 backup addon -n codimd -a save
eole3 backup [addon|admin-tool|infra|ladigitale|socle] -n <component_name> -a list
Exemple pour sauvegarder la base de données PostgreSQL de keycloak :
$ eole3 backup infra -a save -n keycloak
namespace/backup configured
================================================================================
Backup keycloak's PostgreSQL database
================================================================================
persistentvolumeclaim/keycloak-database-backup-pvc unchanged
secret/keycloak-postgresql-credentials configured
job.batch/keycloak-postgresql-backup created
job.batch/keycloak-postgresql-backup condition met
job.batch "keycloak-postgresql-backup" deleted
Exemple pour lister les sauvegardes de keycloak :
$ eole3 backup infra -a list -n keycloak
================================================================================
List keycloak's PostgreSQL backups
================================================================================
Thursday
Wednesday
Exemple pour sauvegarder les bases de données du socle :
$ eole3 backup socle -a save
namespace/backup configured
================================================================================
Backup laboite's MongoDB database
================================================================================
persistentvolumeclaim/laboite-database-backup-pvc unchanged
secret/laboite-mongodb-credentials configured
job.batch/laboite-mongodb-backup created
job.batch/laboite-mongodb-backup condition met
2025-01-16T10:10:11.349+0000 writing laboite.role-assignment to /mongodb_laboite_backup/Thursday/laboite/role-assignment.bson
================================================================================
Backup keycloak's PostgreSQL database
================================================================================
persistentvolumeclaim/keycloak-database-backup-pvc unchanged
secret/keycloak-postgresql-credentials configured
job.batch/keycloak-postgresql-backup created
job.batch/keycloak-postgresql-backup condition met
job.batch "keycloak-postgresql-backup" deleted
================================================================================
laboite s3 backup is disabled
================================================================================
La commande suivante permet de restaurer le portail et ses composants d'infrastructures (keycloak, minio et mongodb) : eole3 restore socle -d [Monday|Tuesday,Wednesday|Thursday|Friday|Saturday|Sunday]
Il est possible de restaurer des composants spécifiques : eole3 restore [addon|admin-tool|infra|ladigitale|socle] -n <component_name>
CodiMD
: eole3 restore addon -n codimd -d [Monday|Tuesday,Wednesday|Thursday|Friday|Saturday|Sunday]
Exemple de restauration de la base de données PostgreSQL de keycloak :
$ eole3 restore infra -n keycloak -d Thursday
================================================================================
Restore keycloak's PostgreSQL database
================================================================================
statefulset.apps/keycloak-keycloakx scaled
secret/keycloak-postgresql-credentials configured
job.batch/keycloak-postgresql-restore created
job.batch/keycloak-postgresql-restore condition met
Defaulted container "keycloak-restore" out of: keycloak-restore, reinit-database (init)
pg_restore: connecting to database for restore
...
job.batch "keycloak-postgresql-restore" deleted
statefulset.apps/keycloak-keycloakx scaled
Exemple pour restaurer les bases de données du socle :
$ eole restore socle -d Thursday
================================================================================
Restore laboite's MongoDB database
================================================================================
deployment.apps/laboite scaled
secret/laboite-mongodb-credentials configured
job.batch/laboite-mongodb-restore created
================================================================================
Restore keycloak's PostgreSQL database
================================================================================
statefulset.apps/keycloak-keycloakx scaled
secret/keycloak-postgresql-credentials configured
job.batch/keycloak-postgresql-restore created
job.batch/keycloak-postgresql-restore condition met
Defaulted container "keycloak-restore" out of: keycloak-restore, reinit-database (init)
pg_restore: connecting to database for restore
job.batch "keycloak-postgresql-restore" deleted
statefulset.apps/keycloak-keycloakx scaled
================================================================================
laboite s3 backup is disabled
================================================================================