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ソフトウェア自由協同組合のメンバーです。