newtonne.backup
Ansibleロール: バックアップ
ファイルやMySQL、PostgreSQLデータベースの自動バックアップのために、borgmaticとborgをインストールして設定します。
要件
オプションの要件:
バックアップを自動化するためには、
cron
がインストールされている必要があります。MySQLまたはMySQL互換データベースがインストールされている必要があります。PostgreSQLデータベースについても同様です。
ロール変数
利用可能な変数は以下にリストされており、デフォルト値が示されています(defaults/main.ymlを参照):
Borgmatic設定関連
backup_directories: []
バックアップするディレクトリ(または個別のファイル)のリストです。
backup_mysql_databases: []
バックアップするMySQLデータベースのリストです。詳細はborgmatic - データベースダンプフックを参照してください。
backup_postgresql_databases: []
バックアップするPostgreSQLデータベースのリストです。詳細はborgmatic - データベースダンプフックを参照してください。
backup_repositories: []
バックアップ先のborg
リポジトリのリストです。これらは事前にborg init
を使用して作成する必要があります。また、リポジトリのURLに関するborgドキュメンテーションもご覧ください。
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
これらの変数を使って、borgmatic
に追加の設定を提供できます。たとえば、borg
リポジトリの暗号化パスフレーズや追加のフックスクリプト/コマンドなどです。すべての設定オプションのリストについては、borgmaticスキーマを参照してください。
backup_hooks_globlist: hooks/*
ファイルグロブ検索がコントロールマシン上でフックスクリプトを見つけるために使用するグロブパターンです。
backup_hooks_directory: /etc/borgmatic/hooks
上記のグロブパターンで見つかったborgmatic
フックスクリプトがコピーされるディレクトリです。
一般
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
cron時間の仕様と実行するアクションのリストです。アクションが指定されていない場合、borgmatic
はすべてのアクション(プルーニング、作成、チェック)を実行します(詳細はborgmaticドキュメント - バックアップの設定を参照)。空白に設定されている場合は、crontabは設定されません。
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
crontabの最初に設定される$PATH
の値です。
backup_verbosity: 0
borgmatic
を実行する際の冗長性レベルです。詳細はborgmaticコマンドラインリファレンスを参照してください。
backup_user: root
バックアップを実行し、さまざまなバックアップ関連のファイルやディレクトリを所有するユーザーです。
backup_group: root
さまざまなバックアップ関連のファイルやディレクトリを所有するグループです。
backup_config_directory: /etc/borgmatic
borgmatic
の設定ファイルが配置されるディレクトリです。
backup_log_file: /var/log/borgmatic.log
borgmatic
の出力がログされるファイルです。
インストール関連
backup_borg_keyserver: hkps://keys.openpgp.org
borg
の公開鍵をダウンロードするためのGPGキーパブリッシャーです。
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
borg
公開鍵のフィンガープリントです。詳細はborgドキュメンテーション - セキュリティを参照してください。
backup_borg_url: https://github.com/borgbackup/borg/releases/download
borg
バイナリをダウンロードするためのURLです。
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
ダウンロードするborg
バイナリ資産の名前です。
backup_borg_version: 1.1.17
ダウンロードするborg
バイナリのバージョンです。
backup_borg_path: /usr/local/bin/borg
borg
バイナリがインストールされるパスです。このファイルがすでに存在する場合、borg
をインストールしようとはしません。
backup_borgmatic_version: 1.5.20
pipを使用してインストールするborgmatic
のバージョンです。
backup_borgmatic_venv: /etc/borgmatic/venv
pipがborgmatic
をインストールするための仮想環境(venv)です。存在しない場合は作成されます。
依存関係
なし
例のプレイブック
- hosts: servers
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: secretpassword
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
ライセンス
MIT