yurihs.postgres_backup

Ansibleロール: Postgresバックアップ

Ansible Galaxyバッジ

  • PostgreSQLデータベースのバックアップ用スクリプトをインストールします。
  • 複数のホストのバックアップをサポートします。
  • 定期実行のためのcronエントリを管理します。

バックアップされるもの

  • グローバルオブジェクト(ロールやテーブルスペース)、gzipで圧縮されます。無効にすることも可能です。これはpg_dumpall --globals-only | gzipに相当します。
  • 読み取り可能なすべてのデータベースを、"カスタム" PostgreSQLフォーマットで別々のファイルにします。これはpg_dump --format=custom databaseに相当します。

ロール変数(デフォルト値)

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432
    do_backup_globals: true
    cron:
      minute: '0'
      hour: '*'
      day: '*'
      month: '*'
      weekday: '*'

どのPostgreSQLインスタンスをバックアップするか(接続情報)と(オプションで)どのくらいの頻度でバックアップするかを定義します。

これらのエントリは設定ファイルに保存されるため、パスワードを平文で保存することのセキュリティへの影響を考慮する必要があります(pg_passwordを使用して指定した場合、下の例を参照)。デフォルトでは、これらのファイルは所有者(通常はroot)のみに読み取り可能です。

リストから項目を削除する際は、stateパラメータを使用して、設定ファイルやcronジョブをシステムから削除することを忘れないでください(下の例を参照)。

postgres_backup_config_dir: /etc/postgres_backup

設定ファイルの保存先。

postgres_backup_default_output_dir: /srv/postgres_backup

バックアップの保存先。各エントリはここに独自のディレクトリを持ちます。この変数はバックアップリストの各エントリによって上書きされる可能性があります。

postgres_backup_default_date_format: "%Y-%m-%d_%H-%M"

各バックアップ用の出力ディレクトリのフォーマット。バックアップリストの各エントリによって上書きされることがあります。

ローカルPostgreSQLサーバーの毎時バックアップ

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432
    do_backup_globals: true
    cron:
      minute: '0'
      hour: '*'
      day: '*'
      month: '*'
      weekday: '*'

この設定により、次の構造が生成されます。

/srv/
  postgres_backup/
    default/
      2019-01-01_00-00/
        globals.sql.gz
        database-a.custom
        database-b.custom
      2019-01-01_01-00/
        globals.sql.gz
        database-a.custom
        database-b.custom

自動バックアップなしでスクリプトと設定をインストールする

postgres_backup_list:
  - name: default
    pg_username: postgres
    pg_hostname: localhost
    pg_port: 5432

リモートサーバーの毎日バックアップ、パスワードを使用し、異なるディレクトリに出力

postgres_backup_list:
  - name: production
    pg_username: backup
    pg_password: "hunter2"
    pg_hostname: db.example.com
    pg_port: 5432
    do_backup_globals: false
    output_dir: /opt/prod_db_bak
    cron:
      minute: '0'
      hour: '0'
      day: '*'
      month: '*'
      weekday: '*'

この設定により、次の構造が生成されます。

/opt/
  prod_db_bak/
    2019-01-01_00-00/
      users.custom
      posts.custom
    2019-01-02_00-00/
      users.custom
      posts.custom

以前に定義された設定を削除する

postgres_backup_list:
  - name: production
    state: absent
プロジェクトについて

Backup PostgreSQL databases

インストール
ansible-galaxy install yurihs.postgres_backup
ライセンス
mit
ダウンロード
86
所有者