gcoop-libre.mysqldump
Ansible 角色:gcoop-libre.mysqldump
这个角色用于配置本地 MySQL/MariaDB/Percona 的访问和使用 mysqldump
命令进行备份的定时任务。
要求
- python-mysqldb
- MySQL/MariaDB/Percona
可选项
Ansible Pass Lookup 插件 允许您使用兼容 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
每月一个文件(每 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
系统日志
默认情况下,角色将 cron 作业记录到系统日志中:
root@dbserver:/backup/sql# tail -f /var/log/syslog
Jun 25 02:30:02 dbserver mysqldump: 开始:2016-06-25 02:30 结束:2016-06-25 02:30 持续时间:00:00:01 文件:c2340030bd3ec4c5b890a7e7ae80fd18 /backup/sql/dbserver-mysql.sql.gz
Jun 25 02:30:02 dbserver mysqldump: 开始:2016-06-25 02:30 结束:2016-06-25 02:30 持续时间:00:00:00 文件:5b5f36528df547e08f42db615e22ded6 /backup/sql/dbserver-information_schema-jun.sql.gz
Jun 25 02:30:02 dbserver mysqldump: 开始:2016-06-25 02:30 结束:2016-06-25 02:30 持续时间:00:00:00 文件:6d952bdd7edf0e5663bbd487dbcaf46c /backup/sql/dbserver-mysql-jun.sql.gz
依赖关系
无。
示例剧本
如果您想使用查找密码插件创建新系统和 MySQL 用户:
- 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。
作者信息
此角色由 Osiris Alejandro Gomez 创建于 2016年,工作合作社为 gcoop 自由软件合作社。