GTID Mysql replication?

Hi!

Is there any (planned) support for GTID-based replication in the mysql-replication package?

It looks like someone started this here, but didn’t get it back into master.

Here’s how I implemented this using the command line mysql args:

  • name: Check if slave is already configured for replication
    mysql_replication: mode=getslave
    register: slave
    ignore_errors: true # on the first run, this will error because not replicating yet
    when: ansible_default_ipv4.address != mysql_master_ip

  • name: Get the current master server’s replication status
    mysql_replication: “mode=getmaster login_user=‘{{ mysql_replication_user }}’ login_password=‘{{ mysql_replication_pass }}’ login_host=‘{{ mysql_master_ip }}’”
    register: mysql_repl_stat
    delegate_to: “{{ mysql_master_name }}”
    when: ansible_default_ipv4.address != mysql_master_ip

  • name: ensure mysql replication
    when: "slave|failed and ansible_default_ipv4.address != mysql_master_ip
    command: "
    /usr/bin/mysql -u {{ mysql_user }} -p{{ mysql_pass }} -e
    "
    STOP SLAVE;
    RESET MASTER;
    SET GLOBAL gtid_purged=‘{{ mysql_repl_stat.Executed_Gtid_Set }}’;
    CHANGE MASTER TO MASTER_HOST=‘{{ mysql_master_ip }}’, MASTER_USER=‘{{ mysql_replication_user }}’, MASTER_PASSWORD=‘{{ mysql_replication_pass }}’, MASTER_AUTO_POSITION=1;
    START SLAVE;
    "
    "

It would be great to have this baked in to the mysql replication module