alphanodes.backup

Ansibleロール: バックアップ

DebianおよびUbuntuサーバー上で、ファイル、MySQLデータベース、PostgreSQLデータベースの毎日、毎週、毎月のバックアップを実行します。

バックアップのローテーションは設定可能で、たとえば祖父-父-子の方式を使用できます。

Ansible Galaxy

依存関係

なし

インストール

Ansible 2+

ansible galaxy CLIを使用して:

ansible-galaxy install alphanodes.backup

ロール変数

利用可能な変数は以下にリストされています。デフォルト値も含まれています(defaults/main.ymlを参照):

backup_dir: /srv/backups

バックアップ用のディレクトリです。このディスクパーティションに十分なディスクスペースがあることを確認してください。変換の問題がないように、引用符を使用してください(例: to_nice_yamlと共に)。

backup_dir_mode: '0755'

backup_dirのディレクトリ権限。

backup_dir_owner: root

backup_dirのディレクトリ所有者。

backup_dir_group: root

backup_dirのディレクトリグループ。

backup_max_days: 7

日次バックアップセットの保存日数です。これにより、backup_max_daysの日数分のみが保存されます。古いセットは自動的に削除されます。値は1以上である必要があります。

backup_max_weeks: 1

週次バックアップセットの保存週間数です。これにより、backup_max_weeks週間分のみが保存されます。古いセットは自動的に削除されます。値は1以上である必要があります。週次バックアップは毎週の初日(通常は月曜日)に作成されます。この日はこのバックアップだけが作成され、日次バックアップは作成されません(重複するため)。

backup_max_months: 1

月次バックアップセットの保存月数です。これにより、backup_max_months月分のみが保存されます。古いセットは自動的に削除されます。値は1以上である必要があります。月次バックアップは毎月の初日に作成されます。この日はこのバックアップだけが作成され、日次または週次バックアップは作成されません(重複するため)。

backup_remote_host: ''

backup_remote_transferを使用してバックアップを同期するためのホスト名。

backup_remote_port: ''

backup_remote_transferを使用してバックアップを同期するためのポート。

backup_remote_dir: ''

backup_remote_hostのリモートディレクトリ(backup_remote_transferに使用)。

backup_remote_excludes:
  - '*.journal'
  - '.nfs*'
  - '*.tar'

これらのファイルはリモートホストへの同期から除外されます。これは、backup_remote_transferrsyncのときのみ使用されます。

backup_rsync_options: '-avz --delete'

backup_remote_transferrsyncを使用するためのrsyncオプション。

backup_remote_transfer: rsync

同期のタイプ。可能な値はrsyncまたはlftpです。

backup_remote_user: ''

リモート同期のためのユーザー。これは、backup_remote_transferlftpのときのみ使用されます。

backup_remote_password: ''

リモート同期のためのパスワード。これは、backup_remote_transferlftpのときのみ使用されます。

backup_with_borg: ''

バックアップボーグを実行すべきか。

backup_db_dump_format: .sql.gz

未圧縮のSQLファイル(.sql)やbzip2(.bz2)、gzip(.gz)、xz用です。現在、主にMySQLダンプに使用されます。

backup_with_mysql: false

MySQL(MariaDB)バックアップダンプを実行します。すべてのデータベースは別々のファイルに保存されます。

backup_with_postgresql: false

PostgreSQLバックアップダンプを実行します。すべてのデータベースは別々のファイルに保存されます。

backup_with_mongodb: false

MongoDBバックアップダンプを実行します。すべてのデータベースは1つのアーカイブファイルに保存されます。

backup_mongodb_options: '--archive --gzip'

MongoDBダンプのオプション。

backup_mysql_db_excludes:
  - performance_schema
  - information_schema
  - sys
backup_mysql_single_transaction: true
# backup_mysqldump_options: '--extended-insert=true --opt --single-transaction'

カスタムMySQLオプション(常に.sql.gzが使用されます)。設定すると、ネイティブのmysql_dump(ansibleなし)が使用されます。デフォルトでは設定されていません。

backup_postgresqldump_options: "--no-owner -Fc"

PostgreSQLダンプのオプション。

backup_create_hashfiles: false

すべてのバックアップセットのハッシュファイルを作成します。

backup_files_unsafe_writes: false

backup_files_unsafe_writesがyesで、tarファイル作成中に変更されたファイルが見つかった場合、エラーは報告されません。tarは追加オプション--warning=no-file-removed --warning=no-file-changed --warning=no-file-ignoredで実行されます。このオプションは、各セットのunsafe_writesで上書きできます。

backup_sets: []

ファイルバックアップのバックアップセット。nameはバックアップファイル名に使用されます。srcはバックアップするファイルのディレクトリです。unsafe_writesbackup_files_unsafe_writesを上書きします。excludesは、ファイルやディレクトリを除外するために使用できるリストです。

backup_one_per_day_limit: true

1日に1つのバックアップセットのみを作成します。同日の既存のバックアップセットは削除されます。

# sync_master: anything

sync_masterが定義されている場合、バックアップはスキップされます。レプリケーション環境で使用できます。

backup_skip_sync_clients: true

sync_masterが定義されている場合、これはsync_clientを意味します。

backup_pre_commands: []

バックアップダンプの前に実行するコマンドのリスト。

backup_post_commands: []

バックアップダンプ作成後に実行されるコマンドのリスト。

例のプレイブック

- hosts: サーバー名
  vars:
    backup_sets:
      - name: etc
        src: /etc
  roles:
    - alphanodes.backup

拡張例プレイブック

- hosts: サーバー名
  vars:
    backup_max_days: 14
    backup_max_weeks: 4
    backup_max_months: 6
    backup_with_postgresql: true
    backup_dir_mode: '0770'
    backup_dir_group: postgres
    backup_sets:
      - name: etc
        src: /etc
      - name: jenkins
        src: /var/lib/jenkins
        unsafe_writes: true
        excludes:
          - builds
          - workspace
  roles:
    - alphanodes.backup

ライセンス

GPLバージョン3

作者情報

このロールは2018年にAlphaNodesによって作成されました。

プロジェクトについて

Run daily backups for files, MySQL databases and PostgreSQL databases

インストール
ansible-galaxy install alphanodes.backup
ライセンス
gpl-3.0
ダウンロード
9.4k
所有者
Professional Services with Open Source