yurihs.postgres_backup

Rôle Ansible : Sauvegardes Postgres

Badge Ansible Galaxy

  • Installe un script pour sauvegarder les bases de données PostgreSQL.
  • Supporte la sauvegarde de plusieurs hôtes.
  • Gère les entrées cron pour une exécution régulière.

Qu'est-ce qui est sauvegardé ?

  • Objets globaux (rôles et tablespaces), compressés avec gzip. Peut être désactivé. Équivalent à pg_dumpall --globals-only | gzip
  • Toutes les bases de données lisibles, dans des fichiers séparés, en utilisant le format "personnalisé" de PostgreSQL. Équivalent à pg_dump --format=custom base_de_données

Variables du rôle (valeurs par défaut)

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432
    do_backup_globals: true
    cron:
      minute: '0'
      hour: '*'
      day: '*'
      month: '*'
      weekday: '*'

Quelles instances PostgreSQL sauvegarder (informations de connexion) et (facultativement) à quelle fréquence.

Ces entrées sont stockées dans des fichiers de configuration, donc vous devez tenir compte des implications de sécurité de stocker des mots de passe en clair (si vous les spécifiez en utilisant pg_password, voir les exemples ci-dessous). Par défaut, ces fichiers ne seront lisibles que par leur propriétaire (généralement root).

Lors de la suppression d'un élément de la liste, n'oubliez pas de modifier l'utilisation du paramètre state pour supprimer le fichier de configuration et la tâche cron du système (voir les exemples ci-dessous).

postgres_backup_config_dir: /etc/postgres_backup

Où stocker la configuration.

postgres_backup_default_output_dir: /srv/postgres_backup

Où stocker les sauvegardes. Chaque entrée aura son propre répertoire à l'intérieur. Cette variable peut être remplacée par chaque entrée de la liste de sauvegarde.

postgres_backup_default_date_format: "%Y-%m-%d_%H-%M"

Comment formater le répertoire de sortie pour chaque sauvegarde. Peut être remplacé par chaque entrée de la liste de sauvegarde.

Exemples

Sauvegarde horaire d'un serveur PostgreSQL local

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432
    do_backup_globals: true
    cron:
      minute: '0'
      hour: '*'
      day: '*'
      month: '*'
      weekday: '*'

Cette configuration aboutira à la structure suivante :

/srv/
  postgres_backup/
    default/
      2019-01-01_00-00/
        globals.sql.gz
        base-a.custom
        base-b.custom
      2019-01-01_01-00/
        globals.sql.gz
        base-a.custom
        base-b.custom

Pas de sauvegardes automatiques, juste installer le script et la configuration

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432

Sauvegarde quotidienne d'un serveur distant, en utilisant un mot de passe, et sortie dans un répertoire différent

postgres_backup_list:
  - name: production
    pg_username: backup
    pg_password: "hunter2"
    pg_hostname: db.example.com
    pg_port: 5432
    do_backup_globals: false
    output_dir: /opt/prod_db_bak
    cron:
      minute: '0'
      hour: '0'
      day: '*'
      month: '*'
      weekday: '*'

Cette configuration aboutira à la structure suivante :

/opt/
  prod_db_bak/
    2019-01-01_00-00/
      utilisateurs.custom
      posts.custom
    2019-01-02_00-00/
      utilisateurs.custom
      posts.custom

Supprimer une configuration précédemment définie

postgres_backup_list:
  - name: production
    state: absent
À propos du projet

Backup PostgreSQL databases

Installer
ansible-galaxy install yurihs.postgres_backup
Licence
mit
Téléchargements
86
Propriétaire