aalaesar.backup_nextcloud
backup_nextcloud
Nextcloudサーバのバックアップを作成するAnsibleロールです。バックアップはサーバ上に保存されます(リモートからローカルマシンに取得する場合を除きます)。
必要条件
このロールを実行するには、以下のツールがホストに必要です:
- tar
- gzip
- rsync
- データベースをダンプする場合、MySQLまたはPostgreSQLクライアント
Nextcloudサーバのサイズに応じた十分なスペースがターゲットファイルシステムに必要です。
ロール変数
Nextcloudサーバの位置決定
このロールはサーバファイルの場所、アクセス方法、バックアップの保存場所を知る必要があります。
nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # オプション
nextcloud_websrv_user: "www-data" # 設定やOSに応じてNextcloudファイルの所有者に変更する必要があります
バックアップの所有者を調整する
バックアップの所有者を調整することができます。運用するユーザーがNextcloudのプロセス所有者と異なる場合に便利です。
nextcloud_backup_owner: "www-data" # バックアップターゲットディレクトリと最終アーカイブの所有者になるユーザー名
nextcloud_backup_group: "www-data" # バックアップターゲットディレクトリと最終アーカイブの所有者になるユーザーグループ
バックアップ名を調整する
バックアップ名を調整できます。
nextcloud_instance_name: "nextcloud" # サーバの人間による識別子
nextcloud_backup_suffix: "" # アーカイブ名の末尾に付ける任意の情報
nextcloud_backup_format: "tgz" # アーカイブの拡張子。アーカイブモジュールで使用されるサポートされたフォーマットを使用(選択肢: bz2、gz、tar、xz、zip)
または、以下を再定義することで完全に変更できます。
nc_archive_name: "{{ nextcloud_instance_name }}_nextcloud-{{ nc_status.versionstring }}_{{ ansible_date_time.iso8601_basic_short }}{{ nextcloud_backup_suffix }}"
バックアップの内容を調整する
このロールは__常に__:
- サーバの設定をバックアップします
- インストールされているアプリケーションのリスト(バージョン番号と共に)を作成します
バックアップの範囲を調整するために、デフォルトで定義されているフラグを有効化/無効化することができます。
nextcloud_backup_download_server_archive: true
nextcloud_backup_app_data: true
nextcloud_backup_user: true
nextcloud_backup_database: true
バックアップに含めるNextcloudサーバのアーカイブを調整する
ロールはNextcloudのダウンロードサイトから適切なサーバアーカイブをダウンロードし、バックアップアーカイブに追加できます。これは nextcloud_backup_download_server_archive
変数を使用してオンにできます。
アプリデータのバックアップを調整する
バックアップから特定のアプリデータフォルダを除外することができます。ただし、特定のアプリをバックアップすることはできません。アプリのコードの知識が必要です。
nextcloud_backup_app_data_exclude_folder:
- preview
デフォルトでは、プレビューフォルダは非常に__大きい__ため、バックアップから除外されます。
ユーザーのバックアップを調整する
バックアップから除外したいユーザーのリストを指定できます。
nextcloud_backup_exclude_users: []
また、サイドフォルダを含めるかどうかも決定できます。
nextcloud_backup_user_files_trashbin: true
nextcloud_backup_user_files_versions: true
nextcloud_backup_user_uploads: true
nextcloud_backup_user_cache: true
リモートからローカルマシンにバックアップを取得する
これらの変数を設定することで、作成されたバックアップをリモートから取得できます。
警告:Ansibleで使用しているユーザーは、ansible.builtin.fetch
でのbecome
使用制限により、バックアップ所有者として設定する必要があります。
nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"
その他
プロセスの最後にサーバをメンテナンスモードにすることができます。
nextcloud_exit_maintenance_mode: true
依存関係
なし
例プレイブック
Nextcloudサーバのフルバックアップを実行する
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
アプリデータのみで部分バックアップを作成する
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
vars:
nextcloud_backup_suffix: _only_app_data
nextcloud_backup_user: false
nextcloud_backup_database: false
ライセンス
GPL-3.0
Create a backup of your nextcloud server with this ansible role
ansible-galaxy install aalaesar.backup_nextcloud