From e56a37ef74978cf5abc60e40684a286004e184b4 Mon Sep 17 00:00:00 2001 From: Quentin Duchemin <quentinduchemin@tuta.io> Date: Thu, 30 Jan 2020 19:06:19 +0100 Subject: [PATCH] [DBBackup] Switch to python3 image --- pica-db-backup/Dockerfile | 3 +- pica-db-backup/README.md | 76 ++++++++++++------------------ pica-db-backup/backup_env_var.py | 2 +- pica-db-backup/clair-whitelist.yml | 4 ++ pica-db-backup/docker-compose.yml | 1 - 5 files changed, 35 insertions(+), 51 deletions(-) diff --git a/pica-db-backup/Dockerfile b/pica-db-backup/Dockerfile index da6e894d..5db85d19 100644 --- a/pica-db-backup/Dockerfile +++ b/pica-db-backup/Dockerfile @@ -1,4 +1,4 @@ -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 diff --git a/pica-db-backup/README.md b/pica-db-backup/README.md index aa9a34b5..c521d7e1 100644 --- a/pica-db-backup/README.md +++ b/pica-db-backup/README.md @@ -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 +``` diff --git a/pica-db-backup/backup_env_var.py b/pica-db-backup/backup_env_var.py index c4caed86..02e42759 100755 --- a/pica-db-backup/backup_env_var.py +++ b/pica-db-backup/backup_env_var.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 import os import sys import json diff --git a/pica-db-backup/clair-whitelist.yml b/pica-db-backup/clair-whitelist.yml index e69de29b..840afa4d 100644 --- a/pica-db-backup/clair-whitelist.yml +++ b/pica-db-backup/clair-whitelist.yml @@ -0,0 +1,4 @@ +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 diff --git a/pica-db-backup/docker-compose.yml b/pica-db-backup/docker-compose.yml index 6d0b2060..7407f383 100644 --- a/pica-db-backup/docker-compose.yml +++ b/pica-db-backup/docker-compose.yml @@ -12,7 +12,6 @@ services: volumes: - /DATA/BACKUP/:/backup/ - ./config:/config - - /etc/localtime:/etc/localtime:ro env_file: - ./secrets/db.secrets networks: -- GitLab