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 自由软件合作社

关于项目

MySQL Backup using mysqldump

安装
ansible-galaxy install gcoop-libre.mysqldump
许可证
gpl-3.0
下载
2.2k