borgbase.ansible_role_borgbackup
Ansibleロール: BorgBackupクライアント
BorgBackupとBorgmaticを使用して、暗号化された圧縮バックアップを設定します。現在、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_method
がpackage
に設定されている場合のみ使用されます。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
: 変数が設定されている場合、タイマーがインストールされます。cron
とsystemd
の間で選択する必要があります。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