fiaasco.borgbackup

Borg バックアップロール

Debian Ubuntu Rocky Multiple

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

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

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

必要な変数

インベントリ内で、1つ以上のホストを持つグループ borgbackup_servers を定義してください。追加専用モードを有効にして、セキュリティが確保されたホストからバックアップを整理したい場合のみ、グループ borgbackup_management が必要です。

[borgbackup_servers]
backup1.fiaas.co

[borgbackup_management]
supersecurehost

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

borgbackup_servers:
  - id: fiaas
    fqdn: backup1.fiaas.co
    user: borgbackup
    type: normal
    home: /backup/
    pool: repos
    options: ""
  - id: rsync
    fqdn: yourhost.rsync.net
    user: userid
    type: rsync.net
    home: ""
    pool: repos
    options: "--remote-path=borg1"
  - id: hetzner
    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 ジョブを作成し、毎日、ランダムな時間の間のランダムな分で root として実行されます。必要に応じてデフォルトをオーバーライドします:

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

必要に応じて borgbackup_client_user をオーバーライドしてください。たとえば、暗号化されたホームディレクトリを持つノートパソコンがある場合、そのホームディレクトリのユーザーとしてバックアップを実行する必要があります。

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

このロールの設定されたデフォルトを確認し、バックアップ_include 内のバックアップされるデフォルトの場所のリストが含まれていることを確認してください。必要に応じて、インベントリでこれをオーバーライドします。

パッケージからの Borg のインストール

変数を設定して、パッケージから Borg をインストールできます:

borgbackup_install_from_pkg: true

EPEL システム(RedHat/CentOS)では、epel-release リポジトリが自動的に追加されます。

使用方法

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

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

テスト

すべてのロール機能は、複雑さを避けるために、ローカル Docker 接続を使用してモレキュールでテストされています。 モレキュールテストに関する詳細は、https://molecule.readthedocs.io/en/latest/ を参照してください。 テストは Testinfra を使用して書かれています。詳細は、https://testinfra.readthedocs.io/en/latest/ を参照してください。

さまざまなシナリオのために、テスト自体は molecule/generic_files に保存されており、再利用性を最適化します。これらは、グループを使用してホスト/グループに適用できます。

テストを開始するのは簡単で、ローカル Docker エンジンが実行されている任意のマシンで次のようにするだけです: (このロールのルートディレクトリ内から)

$ virtualenv -p python3 ~/.venv/fiaasco-borgbackup-docu
$ source ~/.venv/fiaasco-borgbackup-docu/bin/activate
$ pip3 install -r requirements.txt
$ molecule test

すべての機能をテストしてください。失敗したビルドは PR レビューで受け入れられません! すべてのテストシナリオは、少なくともバックアップサーバーでフルデプロイを実行し、バックアップを実行し、復元テストを実行し、さまざまな他の小さなテストを実施し、機能の安定性を確保します。

テストシナリオ

default

molecule test

このシナリオは、Debian プラットフォームで最も一般的な機能をテストします。最新の公式 Debian リリース 2 つでバックアップサーバーを実行します。

centos

molecule test -s centos

このシナリオは、EPEL プラットフォームで最も一般的な機能をテストします。最新の公式 CentOS リリース 2 つでバックアップサーバーを実行します。

ubuntu

molecule test -s ubuntu

このシナリオは、Ubuntu プラットフォームで最も一般的な機能をテストします。最新の公式 Ubuntu リリース 2 つでバックアップサーバーを実行します。

multiple

molecule test -s multiple

このシナリオは、2 つ以上のバックアップサーバーが定義されている場合にロール機能が正常に動作することを確認します。

lamp

molecule test -s lamp

fiaas.lamp ロールがマシンに適用されたときの機能をテストし、「Fiaas」ホストとの互換性を確保します。詳細については molecule.yml を参照してください。

clients

molecule test -s clients

このテストは、すべてのサポートされているプラットフォームと組み合わせのテストを含む最大のシナリオです。例:Debian 8 + 9 + 10、Fedora 31 など。私たちのシステムやプラットフォームはさまざまなので、このシナリオが正常に動作し続ける限り、安全に拡張することができます!

さらなる情報

プロジェクトについて

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

インストール
ansible-galaxy install fiaasco.borgbackup
ライセンス
mit
ダウンロード
12.9k
所有者
Full install as a service