yurihs.postgres_backup
Ansibleロール: Postgresバックアップ
- 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