alphanodes.backup
Ansible Rolle: Backup
Führe tägliche, wöchentliche und monatliche Backups für Dateien, MySQL-Datenbanken und PostgreSQL-Datenbanken auf Debian- und Ubuntu-Servern durch.
Die Backup-Rotation ist konfigurierbar, z. B. kannst du das Großvater-Vater-Sohn-Schema verwenden.
Abhängigkeiten
keine
Installation
Ansible 2+
Verwende die Ansible Galaxy CLI:
ansible-galaxy install alphanodes.backup
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit den Standardwerten (siehe defaults/main.yml
):
backup_dir: /srv/backups
Verzeichnis für Backups. Stelle sicher, dass genügend Speicherplatz auf dieser Partition vorhanden ist. Verwende Anführungszeichen, um Umwandlungsprobleme zu vermeiden (z. B. mit to_nice_yaml).
backup_dir_mode: '0755'
Verzeichnisberechtigung für backup_dir
backup_dir_owner: root
Verzeichnisbesitzer für backup_dir
backup_dir_group: root
Verzeichnisgruppe für backup_dir
backup_max_days: 7
Anzahl der Tage für tägliche Backup-Sets. Es werden nur backup_max_days
(Tage) gespeichert. Ältere Sets werden automatisch gelöscht. Der Wert muss >= 1 sein.
backup_max_weeks: 1
Anzahl der Wochen für wöchentliche Backup-Sets. Es werden nur backup_max_weeks
(Wochen) gespeichert. Ältere Sets werden automatisch gelöscht. Der Wert muss >= 1 sein. Das wöchentliche Backup wird am ersten Tag der Woche erstellt. An diesem Tag wird nur dieses Backup erstellt (und kein tägliches Backup - da dies ein Duplikat wäre).
backup_max_months: 1
Anzahl der Monate für monatliche Backup-Sets. Es werden nur backup_max_months
(Monate) gespeichert. Ältere Sets werden automatisch gelöscht. Der Wert muss >= 1 sein. Das monatliche Backup wird am ersten Tag des Monats erstellt. An diesem Tag wird nur dieses Backup erstellt (und kein tägliches oder wöchentliches Backup - da dies ein Duplikat wäre).
backup_remote_host: ''
Hostname zum Synchronisieren von Backups für die Verwendung von backup_remote_transfer
.
backup_remote_port: ''
Port zum Synchronisieren von Backups für die Verwendung von backup_remote_transfer
.
backup_remote_dir: ''
Remote-Verzeichnis für backup_remote_host
zur Verwendung in backup_remote_transfer
.
backup_remote_excludes:
- '*.journal'
- '.nfs*'
- '*.tar'
Diese Dateien sind vom Synchronisieren zum Remote-Host ausgeschlossen. Dies wird nur verwendet, wenn backup_remote_transfer
auf rsync
gesetzt ist.
backup_rsync_options: '-avz --delete'
rsync-Optionen für backup_remote_transfer
mit rsync
.
backup_remote_transfer: rsync
Art der Synchronisation. Mögliche Werte sind: rsync oder lftp
backup_remote_user: ''
Benutzer für die Remote-Synchronisation. Dies wird nur verwendet, wenn backup_remote_transfer
auf lftp gesetzt ist.
backup_remote_password: ''
Passwort für die Remote-Synchronisation. Dies wird nur verwendet, wenn backup_remote_transfer
auf lftp gesetzt ist.
backup_with_borg: ''
Wenn Backup-Borg ausgeführt werden soll.
backup_db_dump_format: .sql.gz
Unkomprimierte SQL-Dateien (.sql) sowie bzip2 (.bz2), gzip (.gz) und xz. Momentan wird dies nur für MySQL-Dumps verwendet.
backup_with_mysql: false
Führe MySQL (MariaDB) Backup-Dump durch. Alle Datenbanken werden in separaten Dateien gespeichert.
backup_with_postgresql: false
Führe PostgreSQL Backup-Dump durch. Alle Datenbanken werden in separaten Dateien gespeichert.
backup_with_mongodb: false
Führe MongoDB Backup-Dump durch. Alle Datenbanken werden in einer einzigen Archivdatei gespeichert.
backup_mongodb_options: '--archive --gzip'
Optionen für MongoDB-Dump.
backup_mysql_db_excludes:
- performance_schema
- information_schema
- sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'
Benutzerdefinierte MySQL-Optionen (immer sql.gz wird verwendet). Wenn gesetzt, wird der native mysql_dump (ohne Ansible) verwendet. Standardmäßig ist dies nicht gesetzt.
backup_postgresqldump_options: "--no-owner -Fc"
PostgreSQL-Dump-Optionen.
backup_create_hashfiles: false
Erstelle Hash-Dateien von allen Backup-Sets.
backup_files_unsafe_writes: false
Wenn backup_files_unsafe_writes
auf ja gesetzt ist und während der Erstellung von tar-Dateien geänderte Dateien gefunden werden, werden keine Fehler gemeldet. tar läuft mit den zusätzlichen Optionen --warning=no-file-removed --warning=no-file-changed --warning=no-file-ignored
. Diese Option kann für jedes Set mit unsafe_writes
überschrieben werden.
backup_sets: []
Backup-Sets für das Datei-Backup. name
wird als Backup-Dateiname verwendet. src
ist das Verzeichnis der Datei, das gesichert werden soll. unsafe_writes
überschreibt backup_files_unsafe_writes
. excludes
ist eine Liste, die verwendet werden kann, um Dateien oder Verzeichnisse auszuschließen.
backup_one_per_day_limit: true
Erstelle nur ein Backup-Set pro Tag. Vorhandene Backup-Sets desselben Tages werden entfernt.
#sync_master: anything
Wenn sync_master definiert ist, wird das Backup übersprungen. Du kannst es für Replikationsumgebungen verwenden.
backup_skip_sync_clients: true
Wenn sync_master definiert ist, bedeutet dies, dass es sich um einen sync_client handelt.
backup_pre_commands: []
Liste der Befehle, die vor dem Backup-Dump ausgeführt werden sollen.
backup_post_commands: []
Liste der Befehle, die nach der Erstellung des Backup-Dumps ausgeführt werden.
Beispiel-Playbook
- hosts: server-name
vars:
backup_sets:
- name: etc
src: /etc
roles:
- alphanodes.backup
Erweitertes Beispiel-Playbook
- hosts: server-name
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
Lizenz
GPL Version 3
Autoreninformation
Diese Rolle wurde 2018 von AlphaNodes erstellt.
Run daily backups for files, MySQL databases and PostgreSQL databases
ansible-galaxy install alphanodes.backup