borgbase.ansible_role_borgbackup

Ansibleロール: BorgBackupクライアント

Test Ansible Galaxy

BorgBackupBorgmaticを使用して、暗号化された圧縮バックアップを設定します。現在、Debian/Ubuntu、CentOS/Red Hat/Fedora、Archlinux、およびManjaroをサポートしています。

BorgBase.comとの相性が抜群です - あなたのBorgリポジトリのためのシンプルで安全なホスティング。Ansibleを使用してBorgBaseリポジトリを管理するために、Andy HawkinsのBorgBaseコレクションもご覧ください。

主な機能

  • PyPiまたはディストリビューションパッケージからBorgとBorgmaticをインストール
  • Borgmaticの設定を行う
  • CronまたはSystemdタイマーを使用して定期的なバックアップをスケジュール

ブレイキングチェンジ

  • 古いバージョンのこのロールは、バックアップの作成とチェックのために別のCronジョブを設定していました。最近のBorgmaticのバージョンでは、この機能はBorgmaticで管理されています。したがって、余分なCronジョブはこのロールによって削除されます。
  • 古いバージョンのこのロールはスケジュール設定にCronのみをサポートしていました。Systemdタイマーを使用する場合は、最初に/etc/cron.d/borgmatic内のCronジョブを削除してください。このロールは、両方のタイマーを使用しようとしたときに警告します。

例のプレイブック(バックアップユーザーとしてルートおよびCronタイマー)

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: CHANGEME
    borg_repository:
      - ssh://[email protected]/./repo
    borg_source_directories:
      - /var/www
    borgmatic_hooks:
      before_backup:
      - echo "`date` - バックアップを開始しています。"
      postgresql_databases:
      - name: users
        hostname: database1.example.org
        port: 5433

例のプレイブック(サービスユーザーとSystemdタイマー)

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: CHANGEME
    borg_repository: ssh://[email protected]/./repo
    borgmatic_timer: systemd
    borg_user: "backupuser"
    borg_group: "backupuser"
    borg_source_directories:
      - /var/www
    borg_retention_policy:
      keep_hourly: 3
      keep_daily: 7
      keep_weekly: 4
      keep_monthly: 6

インストール

Ansible Galaxyからダウンロード

$ ansible-galaxy install borgbase.ansible_role_borgbackup

Githubから最新バージョンをクローン

$ git clone https://github.com/borgbase/ansible-role-borgbackup.git roles/ansible_role_borgbackup

ロール変数

必須変数

  • borg_repository: リポジトリへのフルパス。自分のサーバーまたはBorgBase.comリポジトリ。 複数のリポジトリにバックアップする場合はリストにすることができます。

任意の変数

  • borg_dep_packages: borg(バックアップ)borgmaticをインストールするための依存パッケージ。

  • borg_distro_packages: borg(バックアップ)borgmaticのディストリビューションパッケージ名。borg_install_methodpackageに設定されている場合のみ使用されます。

  • borg_encryption_passcommand: このコマンドの標準出力は、暗号化キーをアンロックするために使用されます。

  • borg_encryption_passphrase: レポキーまたはキー ファイル に使用するパスワード。リポジトリが暗号化されていない場合は空です。

  • borg_exclude_from: 一つ以上の名前付きファイルから除外パターンを読み取ります。パターンは1行1つ。

  • borg_exclude_patterns: バックアップから除外するパスまたはパターン。公式ドキュメントを参照してください。

  • borg_install_method: デフォルトではpipを使用してborgmaticをインストールします。ディストリビューションのパッケージマネージャーを使用してインストールするには、これをpackageに設定し、(必要に応じて)borg_distro_packages変数を上書きして、borgmaticをインストールするために必要なディストリビューションのパッケージ名を含めてください。多くのディストリビューションは古いバージョンのborgbackupとborgmaticを出荷していますので、自己責任で使用してください。

  • borg_require_epel: RHELベースのディストリビューションでborg_install_method: packageを使用する場合、EPELリポジトリが必要です。チェックを無効にするには(例えば、epel-releaseパッケージの代わりにカスタムミラーを使用する場合)、これをfalseに設定します。デフォルトは{{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }}です(すなわち、エンタープライズLinuxベースのディストリビューションではtrue)。

  • borg_lock_wait_time: リポジトリ/キャッシュロックを取得するために待機する最大秒数。デフォルトは5秒です。

  • borg_one_file_system: ファイルシステムの境界を越えないようにします。デフォルトはtrueです。

  • borg_pip_packages: borg(バックアップ)borgmaticをインストールするための依存パッケージ(pip)。

  • borg_remote_path: リモートのborg実行可能ファイルへのパス。デフォルトはborgです。

  • borg_remote_rate_limit: リモートネットワークのアップロード速度制限(kiBytes/秒)。

  • borg_retention_policy: 各カテゴリー(毎日、毎週、毎月など)で保持するバックアップの数に関する保持ポリシー。

  • borg_source_directories: バックアップするローカルフォルダのリスト。デフォルトは/etc/hostnameです(空のバックアップを防ぐため)。

  • borg_ssh_key_name: SSHの公開鍵および秘密鍵の名前。デフォルトはid_ed25519

  • borg_ssh_key_file_path: 使用するSSHキー。デフォルトは~/.ssh/{{ borg_ssh_key_name }}

  • borg_ssh_key_type: SSH秘密鍵を生成するために使用されるアルゴリズム。選択肢: rsa, dsa, rsa1, ecdsa, ed25519。デフォルト: ed25519

  • borg_ssh_command: "ssh"の代わりに使用するコマンド。SSHオプションを指定するために使用できます。

  • borg_version: 特定のborgバージョンを強制的にインストールします。

  • borg_venv_path: borg(バックアップ)borgmaticのためのvenvを保存するパス。

  • borgmatic_check_last: チェックするアーカイブの数。デフォルトは3

  • borgmatic_checks: 一貫性チェックのリスト。デフォルトは月次チェックです。すべてのオプションについてはドキュメントを参照してください。

  • borgmatic_config_name: Borgmatic設定ファイルで使用する名前。デフォルトはconfig.yaml

  • borgmatic_timer_hour: 定期的に作成と剪定を行うcron/systemdタイマージョブが実行される時刻。デフォルトは{{ 6 | random }}

  • borgmatic_timer_minute: 定期的に作成と剪定を行うcron/systemdタイマージョブが実行される分。デフォルトは{{ 59 | random }}

  • borgmatic_hooks: Healthchecksなどを使用してバックアップを監視するためのフック。公式ドキュメントを参照してください。

  • borgmatic_timer: 変数が設定されている場合、タイマーがインストールされます。cronsystemdの間で選択する必要があります。

  • borgmatic_relocated_repo_access_is_ok: 移動されたリポジトリに関するBorgエラーをバイパスします。デフォルトはfalse

  • borgmatic_store_atime: アーカイブにatimeを保存します。デフォルトはtrue

  • borgmatic_store_ctime: アーカイブにctimeを保存します。デフォルトはtrue

  • borgmatic_version: 特定のborgmaticバージョンを強制的にインストールします。

  • borg_user: バックアップを作成するためのユーザー名(サービスアカウント)。

  • borg_group: バックアップを作成するためのグループ名(サービスアカウント)。

貢献

プルリクエスト(PR)は、意味のある数のユーザーに関連する機能を追加する限り歓迎します。すべてのPRは、スタイルと機能性のテストが行われます。ローカルでテストを実行するには(Dockerが必要):

$ pip install -r requirements-dev.txt
$ molecule test

ライセンス

MIT/BSD

著者

© 2018-2023 Manuel Rielおよび貢献者。

プロジェクトについて

Set up backup to remote machine using Borg and Borgmatic.

インストール
ansible-galaxy install borgbase.ansible_role_borgbackup
ライセンス
mit
ダウンロード
34.4k
所有者
Simple and Secure Offsite Backups