gcoop-libre.mysqldump

Ansibleロール: gcoop-libre.mysqldump

このロールは、ローカルホストでMySQL/MariaDB/Perconaへのアクセスを設定し、mysqldumpコマンドを使用してバックアップ用のcronファイルを作成します。

要件

  • python-mysqldb
  • MySQL/MariaDB/Percona

オプション

Ansible Pass Lookup Pluginを使用すると、暗号化されたパスワードを生成するために、pass互換のパスワードストアを利用できます。パスワードの検索の動作を模倣し、パスワードをプレーンテキストファイルではなくpassで保存します。

ロール変数

デフォルト値を持つ変数(defaults/main.ymlを参照):


gcoop_mysqldump_cron_entries:

  - name: monthly
    minute: 0
    hour: 2
    day: '*/7'
    format: '%b'
    database: "{{ gcoop_mysqldump_database }}"

  - name: daily
    minute: 0
    hour: 1
    day: '*'
    format: '%a'
    database: "{{ gcoop_mysqldump_database }}"

  - name: hourly
    minute: 30
    hour: '*'
    day: '*'
    format: ''
    database: 'mysql'

デフォルトのgcoop_mysqldump_cron_entriesでは、次のファイルが/backup/sqlディレクトリに生成されます:

曜日ごとのファイル:

    hostname-dbname1-lun.sql.gz
    hostname-dbname1-mar.sql.gz
    hostname-dbname1-mie.sql.gz
    hostname-dbname1-jue.sql.gz
    hostname-dbname1-vie.sql.gz
    hostname-dbname1-sab.sql.gz
    hostname-dbname1-dom.sql.gz
    hostname-dbname2-lun.sql.gz
    hostname-dbname2-mar.sql.gz
    hostname-dbname2-mie.sql.gz
    hostname-dbname2-jue.sql.gz
    hostname-dbname2-vie.sql.gz
    hostname-dbname2-sab.sql.gz
    hostname-dbname2-dom.sql.gz

1ヶ月ごとのファイル(7日ごとに更新):

    hostname-dbname1-ene.sql.gz
    hostname-dbname1-feb.sql.gz
    ...
    hostname-dbname1-dic.sql.gz
    hostname-dbname2-ene.sql.gz
    ...
    hostname-dbname2-feb.sql.gz
    hostname-dbname2-dic.sql.gz

最新のダンプで更新されたファイル(1時間ごとに更新):

    hostname-dbname1.sql.gz
    hostname-dbname2.sql.gz

Syslog

デフォルトでは、ロールはcronジョブをsyslogにログ記録します:

root@dbserver:/backup/sql# tail -f /var/log/syslog

Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Duration: 00:00:01 File: c2340030bd3ec4c5b890a7e7ae80fd18  /backup/sql/dbserver-mysql.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Duration: 00:00:00 File: 5b5f36528df547e08f42db615e22ded6  /backup/sql/dbserver-information_schema-jun.sql.gz
Jun 25 02:30:02 dbserver mysqldump: Start: 2016-06-25 02:30 End: 2016-06-25 02:30 Duration: 00:00:00 File: 6d952bdd7edf0e5663bbd487dbcaf46c  /backup/sql/dbserver-mysql-jun.sql.gz

依存関係

ありません。

サンプルプレイブック

新しいシステムとMySQLユーザーを作成したい場合(lookup passプラグインを使用):

    - hosts: localhost
      become: yes
      remote_user: debian

      roles:
        - role: gcoop-libre.mysqldump
          gcoop_mysqldump_create_mysql_user: yes
          gcoop_mysqldump_create_system_user: yes
          gcoop_mysqldump_mysql_username: mysqlbackup
          gcoop_mysqldump_mysql_password: "{{ lookup( 'pass', 'mysql/' + gcoop_mysqldump_mysql_username ) }}"
          gcoop_mysqldump_mysql_root_password: "{{ lookup( 'pass', 'mysql/root' ) }}"
          gcoop_mysqldump_system_password:     "{{ lookup( 'pass', 'users/' + gcoop_mysqldump_mysql_username ) }}"

システムとMySQLユーザーがすでに存在する場合:

    - hosts: localhost
      become: yes
      remote_user: debian

      roles:
        - role: gcoop-libre.mysqldump
          gcoop_mysqldump_mysql_username: mark
          gcoop_mysqldump_mysql_password: dadada
          gcoop_mysqldump_mysql_root_password: 123456

ライセンス

GNU一般公衆ライセンス、GPLv3。

作者情報

このロールは、2016年にOsiris Alejandro Gomezによって作成されました。彼はgcoopソフトウェア自由協同組合のメンバーです。

プロジェクトについて

MySQL Backup using mysqldump

インストール
ansible-galaxy install gcoop-libre.mysqldump
ライセンス
gpl-3.0
ダウンロード
2.2k