Skip to content
Snippets Groups Projects
Verified Commit f6e03cbe authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[DBBackup] Switch to python3 image

parent 7e318d84
No related branches found
No related tags found
No related merge requests found
FROM registry.picasoft.net/pica-debian:stretch
FROM python:3-slim-buster
RUN apt-get update && \
apt-get install -y --no-install-recommends \
......@@ -6,7 +6,6 @@ RUN apt-get update && \
mysql-client \
mongodb-clients \
mongo-tools \
python3 \
cron && \
apt-get clean && \
mkdir -p /scripts/config
......
......@@ -6,30 +6,17 @@ Il est capable de gérer les bases de données `postgres`, `mysql` ou `mongo` po
Il est flexible et se configure via des fichiers JSON.
<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
<!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
- [Lancement](#lancement)
- [Configuration](#configuration)
- [Structure](#structure)
- [Gestion des secrets](#gestion-des-secrets)
- [Exemple](#exemple)
- [Backup des bases de données des services](#backup-des-bases-de-donnes-des-services)
- [Configuration](#configuration)
- [Structure](#structure)
- [Gestion des secrets](#gestion-des-secrets)
- [Exemple](#exemple)
- [Lancement](#lancement)
<!-- /TOC -->
## Lancement
On se synchronise simplement avec le dépôt et on lance le Docker Compose.
On copie `secrets/db.secrets.example` dans `secrets/db.secrets` :
* On assigne le nom de la VM à `HOSTNAME` (*e.g.* `pica02`),
* On renseigne les secrets (voir [plus bas]((#gestion-des-secrets)))
L'outil sélectionne automatiquement le bon fichier de configuration en fonction du nom d'hôte de la machine virtuelle, il n'y a donc rien à modifier :
```
$ docker-compose up -d
```
## Configuration
Les fichiers dans [`.config`](./config) recensent les informations sur les différents services mis en place sur les machines et les informations nécessaires pour lancer les rotations sur ces services.
......@@ -42,19 +29,14 @@ On veillera à ce que les noms d'hôte correspondent bien aux noms des conteneur
### Structure
- Nom du service : Contient une structure de données contenant les informations relatives au service telles qu'indiquées ci-dessous
- "Host" : Indique l'hôte de la base de données
- "Port" : Indique le port pour se connecter au service
- "Database" : Indique le nom de la base de données
- "User" : Nom d'utilisateur ou nom d'une variable d'environnement (optionnel)
- "Password" : Mot de passe ou nom d'une variable d'environnement (optionnel)
- "Folder" : Indique le nom du dossier de backup utilisé par le script de backup et de rotation
- "Cron" : Indique la fréquence de temps à laquelle les backups sont effectués par le script de rotation au format cron
- "Init-Backup" : Indique si un backup doit être effectué au démarrage du service, en plus de la programmation du cron
- "Backup-Rota" : Contient les paramètres pour la rotation des backups dans une structure de données comme indiqué ci-dessous
- "Hour" : nombre de backups horaires à conserver
- "Day" : nombre de backups quotidiens à conserver
- "Week" : nombre de backups hebdomadaires à conserver
- "Month": nombre de backups mensuels à conserver
- `Host` : Indique l'hôte de la base de données
- `Port` : Indique le port pour se connecter au service
- `Database` : Indique le nom de la base de données
- `User` : Nom d'utilisateur ou nom d'une variable d'environnement (optionnel)
- `Password` : Mot de passe ou nom d'une variable d'environnement (optionnel)
- `Folder` : Indique le nom du dossier de backup utilisé par le script de backup et de rotation
- `Cron` : Indique la fréquence de temps à laquelle les backups sont effectués par le script de rotation au format cron
- `Init-Backup` : Indique si un backup doit être effectué au démarrage du service, en plus de la programmation du cron
### Gestion des secrets
......@@ -78,13 +60,6 @@ La substitution est effectué automatiquement par l'outil.
"Folder": "wekan",
"Cron" : "0 * * * *",
"Init-Backup" : "0",
"Backup-Rota":
{
"Hour" : 24,
"Day" : 7,
"Week" : 4,
"Month" : 12
}
},
"etherpad":
{
......@@ -98,13 +73,20 @@ La substitution est effectué automatiquement par l'outil.
"Cron" : "0 * * * *",
"Options" : "--single-transaction",
"Init-Backup" : "0",
"Backup-Rota":
{
"Hour" : 24,
"Day" : 7,
"Week" : 4,
"Month" : 12
}
}
}
```
## Lancement
On se synchronise simplement avec le dépôt et on lance le Docker Compose.
On copie `secrets/db.secrets.example` dans `secrets/db.secrets` :
* On assigne le nom de la VM à `HOSTNAME` (*e.g.* `pica02`),
* On renseigne les secrets (voir [plus bas]((#gestion-des-secrets)))
L'outil sélectionne automatiquement le bon fichier de configuration en fonction du nom d'hôte de la machine virtuelle, il n'y a donc rien à modifier :
```
$ docker-compose up -d
```
#!/usr/bin/python3
#!/usr/bin/env python3
import os
import sys
import json
......
generalwhitelist:
CVE-2019-19603: sqlite3 -> pas de contre mesure dans buster
CVE-2019-18224: libidn2 -> pas de contre mesure dans buster
CVE-2019-17455: libntlm -> pas de contre mesure dans buster
......@@ -12,7 +12,6 @@ services:
volumes:
- /DATA/BACKUP/:/backup/
- ./config:/config
- /etc/localtime:/etc/localtime:ro
env_file:
- ./secrets/db.secrets
networks:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment