src.dualinventive.com/devops/ansible/rootnet-roles/di-sec-replication/tasks/main.yml

49 lines
1.5 KiB
YAML

---
- name: Template replication config file
template:
src: "replication.cnf.j2"
dest: "/etc/mysql/conf.d/replication.cnf"
owner: "root"
group: "root"
mode: "0644"
notify:
- restart mariadb
- name: check slave status
mysql_replication:
mode: getslave
login_user: "{{ di_legacy_secure_mysql_replication_user }}"
login_password: "{{ di_legacy_secure_mysql_replication_password }}"
ignore_errors: True
register: slave
- name: check master status
mysql_replication:
mode: getmaster
login_user: "{{ di_legacy_secure_mysql_replication_user }}"
login_password: "{{ di_legacy_secure_mysql_replication_password }}"
delegate_to: "{{ di_legacy_secure_mysql_replication_master }}"
ignore_errors: True
register: master
- name: configure slave if needed
mysql_replication:
mode: changemaster
config_file: "/etc/mysql/mysql-root.cnf"
master_host: "{{ di_legacy_secure_mysql_replication_master }}"
master_user: "{{ di_legacy_secure_mysql_replication_user }}"
master_password: "{{ di_legacy_secure_mysql_replication_password }}"
master_log_file: "{{ master.File }}"
master_log_pos: "{{ master.Position }}"
ignore_errors: True
when: >
(slave.Is_Slave is defined and not slave.Is_Slave) or (slave.Is_Slave is not defined and slave|failed)
- name: start replication
mysql_replication:
config_file: "/etc/mysql/mysql-root.cnf"
mode: startslave
when: >
(slave.Is_Slave is defined and not slave.Is_Slave) or (slave.Is_Slave is not defined and slave|failed)