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

[DBBackup] Switch to python3 image

parent 93e52442
Branches
Tags
No related merge requests found
FROM registry.picasoft.net/pica-debian:stretch FROM python:3-slim-buster
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
...@@ -6,7 +6,6 @@ RUN apt-get update && \ ...@@ -6,7 +6,6 @@ RUN apt-get update && \
mysql-client \ mysql-client \
mongodb-clients \ mongodb-clients \
mongo-tools \ mongo-tools \
python3 \
cron && \ cron && \
apt-get clean && \ apt-get clean && \
mkdir -p /scripts/config mkdir -p /scripts/config
......
...@@ -6,30 +6,17 @@ Il est capable de gérer les bases de données `postgres`, `mysql` ou `mongo` po ...@@ -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. 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) - [Backup des bases de données des services](#backup-des-bases-de-donnes-des-services)
- [Configuration](#configuration) - [Configuration](#configuration)
- [Structure](#structure) - [Structure](#structure)
- [Gestion des secrets](#gestion-des-secrets) - [Gestion des secrets](#gestion-des-secrets)
- [Exemple](#exemple) - [Exemple](#exemple)
- [Lancement](#lancement)
<!-- /TOC --> <!-- /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 ## 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. 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 ...@@ -42,19 +29,14 @@ On veillera à ce que les noms d'hôte correspondent bien aux noms des conteneur
### Structure ### Structure
- Nom du service : Contient une structure de données contenant les informations relatives au service telles qu'indiquées ci-dessous - 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 - `Host` : Indique l'hôte de la base de données
- "Port" : Indique le port pour se connecter au service - `Port` : Indique le port pour se connecter au service
- "Database" : Indique le nom de la base de données - `Database` : Indique le nom de la base de données
- "User" : Nom d'utilisateur ou nom d'une variable d'environnement (optionnel) - `User` : Nom d'utilisateur ou nom d'une variable d'environnement (optionnel)
- "Password" : Mot de passe 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 - `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 - `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 - `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
### Gestion des secrets ### Gestion des secrets
...@@ -78,13 +60,6 @@ La substitution est effectué automatiquement par l'outil. ...@@ -78,13 +60,6 @@ La substitution est effectué automatiquement par l'outil.
"Folder": "wekan", "Folder": "wekan",
"Cron" : "0 * * * *", "Cron" : "0 * * * *",
"Init-Backup" : "0", "Init-Backup" : "0",
"Backup-Rota":
{
"Hour" : 24,
"Day" : 7,
"Week" : 4,
"Month" : 12
}
}, },
"etherpad": "etherpad":
{ {
...@@ -98,13 +73,20 @@ La substitution est effectué automatiquement par l'outil. ...@@ -98,13 +73,20 @@ La substitution est effectué automatiquement par l'outil.
"Cron" : "0 * * * *", "Cron" : "0 * * * *",
"Options" : "--single-transaction", "Options" : "--single-transaction",
"Init-Backup" : "0", "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 os
import sys import sys
import json 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: ...@@ -12,7 +12,6 @@ services:
volumes: volumes:
- /DATA/BACKUP/:/backup/ - /DATA/BACKUP/:/backup/
- ./config:/config - ./config:/config
- /etc/localtime:/etc/localtime:ro
env_file: env_file:
- ./secrets/db.secrets - ./secrets/db.secrets
networks: networks:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment