papanito.borg
Ansibleロール「papanito.borg」
Ansibleロールは、borgを使用して定期的なバックアップをインストールして設定します。このロールは次のことを行います。
[オプション] 既存のリポジトリを削除
protocol
://backup_server
:target_dir
またはtarget_dir
にリポジトリを初期化注意
リポジトリの
target_dir
が既に存在する場合、初期化はスキップされます。backup_server
が指定されていない場合、ローカルバックアップ(ローカルディレクトリへのバックアップ)が前提とされます。定期的に(
backup_schedule
に従って)borg.sh
スクリプトを実行するsystemd
サービスを作成します。詳細はborgbackup.orgを参照。/opt/borg_backup
に、以下でカスタマイズされた個別のborgスクリプトautomatic-backup-{{service_name}}.sh
が生成されます。backup_source_dir
backup_exclude_file
またはbackup_exclude_list
backup_schedule
要件
なし
ロール変数
以下はすべての変数です。
パラメータ | 説明 | デフォルト値 |
---|---|---|
backup_server |
バックアップサーバーの名前 - 定義されていない場合、ローカルバックアップと見なされます | - |
backup_user |
サーバーに接続するためのユーザー名 | - |
backup_port |
backup_server に接続するためのポート |
- |
protocol |
backup_server へ接続するために使用されるプロトコル |
ssh |
backup_name |
[必須] バックアップの名前 | |
backup_encryption_key |
[必須] repokey を使用した暗号化キーのパスフレーズ |
- |
backup_encryption_method |
Borgの暗号化方法、現在はrepokey のみが実装されています |
repokey |
target_dir |
backup_server 上のバックアップのターゲットディレクトリ |
"./backups/{{ backup_name }}" |
backup_delete |
警告 true に設定すると、既存のバックアップリポジトリが削除されます |
false |
backup_create |
リポジトリの作成。-e backup_delete=true -e backup_create=false を使用して既存のrepository を明示的に削除できます |
true |
backup_schedule |
毎日のバックアップを実行するためのsystemdスケジュール記法 | *-*-* 03:00:00 |
backup_include_list |
バックアップするソースディレクトリのリスト | - |
backup_exclude_file |
除外パターンを含むEXCLUDEFILE backup_exclude_list より優先されます |
- |
backup_exclude_list |
--exclude 'PATTERN' として追加されるパターンのリスト |
- |
以下のパラメータはsystemdサービスファイルに関連しています。
パラメータ | 説明 | デフォルト値 |
---|---|---|
systemd_target_dir |
.service ファイルをコピーする場所 |
/etc/systemd/system/ |
borg_systemd_user |
systemdサービスのユーザー | backup |
borg_systemd_group |
systemdサービスのグループ | backup |
borg_systemd_on_failure |
設定した場合、サービスファイルに[OnFailure]エントリを追加 | - |
systemd_script_mode |
スクリプトファイルのモード | 0774 |
systemd_service_mode |
サービスファイルのモード | 0644 |
デプロイされるスクリプトでは、borg pruneで説明されているprune
のオプションも定義されます。数値を要求するが変数が定義されていない場合、そのオプションは提供されません。
パラメータ | 説明 | デフォルト値 |
---|---|---|
backup_prune_dryrun |
-n, --dry-run リポジトリを変更しない |
false |
backup_prune_force |
--force 壊れたアーカイブの強制プルーニング |
false |
backup_prune_stats |
-s, --stats 削除されたアーカイブの統計を印刷 |
true |
backup_prune_list |
--list 保持/削除するアーカイブの詳細リストを出力 |
true |
backup_prune_keep_within |
--keep-within INTERVAL この時間内のすべてのアーカイブを保持 |
- |
backup_prune_keep_last |
--keep-last, --keep-secondly 保持する秒単位のアーカイブ数 |
- |
backup_prune_keep_minutely |
--keep-minutely 保持する分単位のアーカイブ数 |
- |
backup_prune_keep_hourly |
-H, --keep-hourly 保持する時間単位のアーカイブ数 |
- |
backup_prune_keep_daily |
-d, --keep-daily 保持する日単位のアーカイブ数 |
- |
backup_prune_keep_weekly |
-w, --keep-weekly 保持する週単位のアーカイブ数 |
- |
backup_prune_keep_monthly |
-m, --keep-monthly 保持する月単位のアーカイブ数 |
- |
backup_prune_keep_yearly |
-y, --keep-yearly 保持する年単位のアーカイブ数 |
- |
backup_prune_save_space |
--save-space より遅く動作しますが、少ないスペースを使用 |
false |
機密情報を隠すためには、ansible-vault
の使用をお勧めします。
パスワードファイルをansible.cfg
に定義することで、ボールトパラメータを指定する必要がなくなります。次のように、暗号化された変数backup_encryption_key
を作成できます。
ansible-vault encrypt_string 'SupersecretPa$$phrase' --name 'backup_encryption_key'
依存関係
なし
例
例 Playbook リモートバックアップ
ロールの使用方法(例えば、変数をパラメータとして渡す場合)の例を含めると、ユーザーにとって非常に便利です。
- hosts: localhost
vars:
- backup_server: borg.intra
- backup_user: borguser
- backup_name: mybackupname
- backup_encryption_key: test
- backup_port: 23
- target_dir: "/var/backups/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
roles:
- role: papanito.borg
これにより、ssh://[email protected]:/var/backup/mybackupname
にバックアップが作成され、次のsystemdファイルが生成されます。
/opt/borg_backup/automatic-backup-mybackupname-borg.intra.sh
(バックアップスクリプト)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.service
(systemdサービスファイル)/etc/systemd/system/automatic-backup-mybackupname-borg.intra.timer
(systemdタイマーファイル)
例 Playbook ローカルバックアップ
ロールの使用方法の例を含めると、ユーザーにとって非常に便利です。
- hosts: localhost
vars:
- backup_name: mybackupname
- backup_encryption_key: test
- target_dir: "/var/backup/"
- backup_schedule: "*-*-* 03:00:00"
- backup_exclude_list:
- "*/Downloads"
- "*/google-chrome*"
- backup_include_list:
- /home/papanito
- backup_prune_keep_daily: 7
- backup_prune_keep_weekly: 5
- backup_prune_keep_monthly: 6
- backup_prune_keep_yearly: 1
これにより、/var/backup/mybackupname
にバックアップが作成され、次のsystemdファイルが生成されます。
/opt/borg_backups/automatic-backup-mybackupname-local.sh
(バックアップスクリプト)/etc/systemd/system/automatic-backup-mybackupname-local.service
(systemdサービスファイル)/etc/systemd/system/automatic-backup-mybackupname-local.timer
(systemdタイマーファイル)
ライセンス
これは無料ソフトウェアで、Apache v2ライセンスの条件でリリースされています。
著者情報
ansible-galaxy install papanito.borg