20ha.yml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # db2
  2. - name: Upload db_file to node if it is cached
  3. synchronize:
  4. src: "{{ file_path_cached }}"
  5. dest: "{{ file_path_cached }}"
  6. mode: push
  7. - name: Restore database
  8. mysql_db:
  9. name: all
  10. state: import
  11. target: "{{ file_path_cached }}"
  12. login_user: "{{ db_user }}"
  13. login_password: "{{ db_password }}"
  14. - name: show var
  15. debug:
  16. msg: "groups['mariadb_ha_nodes'][0]{{ groups['mariadb_ha_nodes'][0] }}"
  17. - name: Get master binlog file name and binlog position
  18. mysql_replication:
  19. mode: getprimary
  20. login_user: "{{ db_user }}"
  21. login_password: "{{ db_password }}"
  22. delegate_to: "{{ groups['mariadb_ha_nodes'][0] }}"
  23. register: repl_info
  24. - name: Stop replica
  25. mysql_replication:
  26. mode: stopreplica
  27. login_user: "{{ db_user }}"
  28. login_password: "{{ db_password }}"
  29. - name: Change master to db01 for db02
  30. mysql_replication:
  31. mode: changeprimary
  32. master_host: "{{ hostvars[groups['mariadb_ha_nodes'][0]]['ansible_host'] }}"
  33. master_log_file: "{{ repl_info.File }}"
  34. master_log_pos: "{{ repl_info.Position }}"
  35. master_user: "repl"
  36. master_password: "{{ repl_password | d(db_password) }}"
  37. login_user: "{{ db_user }}"
  38. login_password: "{{ db_password }}"
  39. ignore_errors: true
  40. - name: Start replica
  41. mysql_replication:
  42. mode: startreplica
  43. login_user: "{{ db_user }}"
  44. login_password: "{{ db_password }}"