--- - name: Create readonly user mysql_user: name: repl password: "{{ repl_password | d(db_password) }}" host: '%' priv: '*.*:ALL' state: present login_user: "{{ db_user }}" login_password: "{{ db_password }}" - include_tasks: 10ha.yml when: inventory_hostname == groups['mariadb_ha_nodes'][0] - include_tasks: 20ha.yml when: inventory_hostname == groups['mariadb_ha_nodes'][1] - when: inventory_hostname == groups['mariadb_ha_nodes'][0] block: - name: Get primary binlog file name and binlog position mysql_replication: mode: getprimary login_user: "{{ db_user }}" login_password: "{{ db_password }}" delegate_to: "{{ groups['mariadb_ha_nodes'][1] }}" register: repl_info - name: Stop replica mysql_replication: mode: stopreplica login_user: "{{ db_user }}" login_password: "{{ db_password }}" - name: Change primary to db02 for db01 mysql_replication: mode: changeprimary primary_host: "{{ hostvars[groups['mariadb_ha_nodes'][1]]['ansible_host'] }}" primary_log_file: "{{ repl_info.File }}" primary_log_pos: "{{ repl_info.Position }}" primary_user: "repl" primary_password: "{{ repl_password | d(db_password) }}" login_user: "{{ db_user }}" login_password: "{{ db_password }}" ignore_errors: true - name: Start replica mysql_replication: mode: startreplica login_user: "{{ db_user }}" login_password: "{{ db_password }}" - include_tasks: keepalived.yml