alphanodes.backup

Rôle Ansible : Sauvegarde

Effectuez des sauvegardes quotidiennes, hebdomadaires et mensuelles pour les fichiers, les bases de données MySQL et les bases de données PostgreSQL sur les serveurs Debian et Ubuntu.

La rotation des sauvegardes est configurable, par exemple, vous pouvez utiliser le schéma Grand-père-père-fils.

Ansible Galaxy

Dépendances

Aucune

Installation

Ansible 2+

Utilisation de la CLI Ansible Galaxy :

ansible-galaxy install alphanodes.backup

Variables de Rôle

Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml) :

backup_dir: /srv/backups

Répertoire pour les sauvegardes. Assurez-vous qu'il y a suffisamment d'espace disque sur cette partition. Utilisez des guillemets pour éviter les problèmes de conversion (par exemple avec to_nice_yaml).

backup_dir_mode: '0755'

Permissions du répertoire pour backup_dir.

backup_dir_owner: root

Propriétaire du répertoire pour backup_dir.

backup_dir_group: root

Groupe du répertoire pour backup_dir.

backup_max_days: 7

Nombre de jours pour les ensembles de sauvegardes quotidiennes. Cela signifie que seuls les ensembles de backup_max_days jours sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1.

backup_max_weeks: 1

Nombre de semaines pour les ensembles de sauvegardes hebdomadaires. Cela signifie que seuls les ensembles de backup_max_weeks semaines sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1. La sauvegarde hebdomadaire est créée tous les premiers jours de la semaine. À ce jour, seule cette sauvegarde est créée (et pas de sauvegarde quotidienne - car cela serait un duplicata).

backup_max_months: 1

Nombre de mois pour les ensembles de sauvegardes mensuelles. Cela signifie que seuls les ensembles de backup_max_months mois sont conservés. Les ensembles plus anciens sont supprimés automatiquement. La valeur doit être >= 1. La sauvegarde mensuelle est créée le premier jour de chaque mois. À ce jour, seule cette sauvegarde est créée (et pas de sauvegarde quotidienne ou hebdomadaire - car cela serait un duplicata).

backup_remote_host: ''

Nom d'hôte pour synchroniser les sauvegardes avec backup_remote_transfer.

backup_remote_port: ''

Port pour synchroniser les sauvegardes avec backup_remote_transfer.

backup_remote_dir: ''

Répertoire distant pour backup_remote_host à utiliser avec backup_remote_transfer.

backup_remote_excludes:
  - '*.journal'
  - '.nfs*'
  - '*.tar'

Ces fichiers sont exclus de la synchronisation vers l'hôte distant. Cela est utilisé uniquement si backup_remote_transfer est rsync.

backup_rsync_options: '-avz --delete'

Options rsync pour backup_remote_transfer avec rsync.

backup_remote_transfer: rsync

Type de synchronisation. Les valeurs possibles sont : rsync ou lftp.

backup_remote_user: ''

Utilisateur pour la synchronisation à distance. Ceci n'est utilisé que si backup_remote_transfer est lftp.

backup_remote_password: ''

Mot de passe pour la synchronisation à distance. Ceci n'est utilisé que si backup_remote_transfer est lftp.

backup_with_borg: ''

Indique si backupborg doit être exécuté.

backup_db_dump_format: .sql.gz

Fichiers SQL non compressés (.sql) ainsi que bzip2 (.bz2), gzip (.gz) et xz. Actuellement, utilisé uniquement pour les dumps MySQL.

backup_with_mysql: false

Exécute une sauvegarde de dump MySQL (MariaDB). Toutes les bases de données sont conservées dans des fichiers séparés.

backup_with_postgresql: false

Exécute une sauvegarde de dump PostgreSQL. Toutes les bases de données sont stockées dans des fichiers séparés.

backup_with_mongodb: false

Exécute une sauvegarde de dump MongoDB. Toutes les bases de données sont conservées dans un seul fichier d'archive.

backup_mongodb_options: '--archive --gzip'

Options pour le dump de MongoDB.

backup_mysql_db_excludes:
  - performance_schema
  - information_schema
  - sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'

Options MySQL personnalisées (sql.gz est toujours utilisé). Si défini, l'option native mysql_dump (sans Ansible) est utilisée. Par défaut, cela n'est pas défini.

backup_postgresqldump_options: "--no-owner -Fc"

Options de dump PostgreSQL.

backup_create_hashfiles: false

Créer des fichiers de hachage pour tous les ensembles de sauvegardes.

backup_files_unsafe_writes: false

Si backup_files_unsafe_writes est vrai et que des fichiers modifiés sont trouvés lors de la création des fichiers tar, aucune erreur n'est signalée. Tar est exécuté avec les options supplémentaires --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored. Cette option peut être écrasée pour chaque ensemble avec unsafe_writes.

backup_sets: []

Ensembles de sauvegardes pour la sauvegarde de fichiers. name est utilisé comme nom de fichier de sauvegarde. src est le répertoire des fichiers à sauvegarder. unsafe_writes écrase backup_files_unsafe_writes. excludes est une liste qui peut être utilisée pour exclure des fichiers ou des répertoires.

backup_one_per_day_limit: true

Créer uniquement un ensemble de sauvegarde par jour. Les ensembles de sauvegarde existants du même jour seront supprimés.

#sync_master: anything

Si sync_master est défini, la sauvegarde sera ignorée. Vous pouvez l'utiliser pour les environnements de réplication.

backup_skip_sync_clients: true

Si sync_master est défini, cela signifie que c'est un sync_client.

backup_pre_commands: []

Liste des commandes à exécuter avant le dump de sauvegarde.

backup_post_commands: []

Liste des commandes à exécuter après que la sauvegarde a été créé.

Exemple de Playbook

- hosts: nom-du-serveur
  vars:
    backup_sets:
      - name: etc
        src: /etc
  roles:
    - alphanodes.backup

Exemple étendu de Playbook

- hosts: nom-du-serveur
  vars:
    backup_max_days: 14
    backup_max_weeks: 4
    backup_max_months: 6
    backup_with_postgresql: true
    backup_dir_mode: '0770'
    backup_dir_group: postgres
    backup_sets:
      - name: etc
        src: /etc
      - name: jenkins
        src: /var/lib/jenkins
        unsafe_writes: true
        excludes:
          - builds
          - workspace
  roles:
    - alphanodes.backup

Licence

GPL Version 3

Informations sur l'auteur

Ce rôle a été créé en 2018 par AlphaNodes.

À propos du projet

Run daily backups for files, MySQL databases and PostgreSQL databases

Installer
ansible-galaxy install alphanodes.backup
Licence
gpl-3.0
Téléchargements
9.4k
Propriétaire
Professional Services with Open Source