diff --git a/pica-db-backup/Dockerfile b/pica-db-backup/Dockerfile index da6e894d74e3968aedf7af6104cde8f3e9d6ed03..5db85d19d731212a2499f925e85bc1682ef29ded 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 aa9a34b53790679b39742f6a9e0ec4162132e169..c521d7e13d4989a12644e19f34c924e05f145911 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 c4caed86bda0b746c2159cac7e900c7aed6a7f14..02e427599f5e68d75da52c2bf7a2c48cb071824a 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..840afa4dd315142624a6cc82dfd435e5c77d47f4 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 6d0b2060e1e10dfdc2d181d41a6792772f3d9e3f..7407f38392c801e2f152e8d3d58da9dde8a54bc0 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: