tag1consulting.borgbackup

Borgバックアップロール

これは、Luc StroobantとDieter Verhelstによって元々作成されたhttps://github.com/FiaasCo/borgbackupのフォークです。このフォークはTag1 Consulting, Inc.によって維持されています。

このロールは、borgbackupサーバーとクライアントにBorgバックアップをインストールします。ロールには、クライアントでの使い方を簡単にするためのラッパースクリプト「borg-backup」が含まれています。サポートされているオプションには、borg-backup info | init | list | backup | mountがあります。Automysqlbackupがインストールされている場合、バックアップ前のコマンドとして実行されます。 このロールは、rsync.netやHetznerストレージボックスなどのBorgサーバーを使用した自己ホスト型およびオフサイト型のバックアップストレージをサポートしています。

削除からバックアップを保護するために、追加のみのリポジトリを構成することが可能です。

このロールを実行するには、Ansible 2.4以上が必要です。

Ansible Galaxy

このロールは、Ansible Galaxyにおけるtag1consulting.borgbackupです。このロールをプレイブックで使用するには、requirements.txtファイルに以下を追加してください:

# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"

必要な変数

インベントリにborgbackup_serversというグループを定義し、1つ以上のホストを指定します。追加のみのモードを有効にし、安全なホストからバックアップを削除したい場合は、borgbackup_managementグループが必要です。

[borgbackup_servers]
backup1.fiaas.co

[borgbackup_management]
supersecurehost

バックアップエンドポイントと保持期間のために、グループまたはホスト変数を定義します:

borgbackup_servers:
  - fqdn: backup1.fiaas.co
    user: borgbackup
    type: normal
    home: /backup/
    pool: repos
    options: ""
  - fqdn: yourhost.rsync.net
    user: userid
    type: rsync.net
    home: ""
    pool: repos
    options: "--remote-path=borg1"
  - fqdn: username.your-storagebox.de
    user: username
    type: hetzner
    home: ""
    pool: repos
    options: ""


borgbackup_retention:
  hourly: 12
  daily: 7
  weekly: 4
  monthly: 6
  yearly: 1

警告: item.homeの末尾に/が必要です。

各ホストのためにborg_passphraseを定義します。 host_vars/client1:

borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p

デフォルトでは、このロールは/etc/cron.d/borg-backupにcronジョブを作成し、毎日ランダムな時間の0時から5時の間のランダムな分にrootとして実行されます。必要に応じてデフォルト値を上書きします:

borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"

必要に応じてborgbackup_client_userを上書きします。例えば、暗号化されたホームディレクトリを持つラップトップの場合、そのホームディレクトリのユーザーとしてバックアップを実行する必要があります。

追加のみのリポジトリを望む場合は、ホストまたはグループ変数でborgbackup_appendonly: Trueを設定します。その場合、borgbackup_management_stationでborg pruneスクリプトを構成するホスト名を定義することができます。管理ステーションだけが(すべての)クライアントの古いバックアップを削除する権限を持ちます。これにより、--append-only sshキーオプションでサーバが生成されます。 borgbackup_appendonly_repoconfigをTrueに設定すると、管理ステーションからバックアップを削除することも無効になります。(あるいは少なくとも: リポジトリを再構成するまで削除することはできず、これは現在pruneスクリプトでサポートされていません) 追加のみのモードの制限に注意してください: 削除されたバックアップは削除されたように見えますが、通常モードでリポジトリに何かが書き込まれるまで、トランザクションログでのみ削除されます)。

このロールのデフォルト設定を確認してください。バックアップに含まれるデフォルトの場所のリストがbackup_includeに含まれています。必要に応じてインベントリでこれを上書きしてください。

EPELパッケージからBorgをインストールする

Borgは、変数を設定することでEPELパッケージからインストールできます:

borgbackup_install_from_pkg: true

成功させるために、EPELリポジトリが存在する必要があります。 geerlingguy.repo-epelロールを使用してEPELリポジトリをインストールするには、以下を設定します:

borgbackup_install_epel: true

使い方

サーバーとクライアントにBorgを設定します:

ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co

さらなる情報

プロジェクトについて

Install Borg backup server and client (with rsync.net server support)

インストール
ansible-galaxy install tag1consulting.borgbackup
ライセンス
mit
ダウンロード
2.1k
所有者