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
ライセンス
agpl-3.0
ダウンロード
695
所有者
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...