--- - name: Install software package: name: "{{ item }}" state: present with_items: "{{ db_packages }}" - name: "Quick-Fix MariaDB/systemd problems" lineinfile: path: /usr/lib/systemd/system/mariadb.service regexp: "^SendSIGKILL=no" line: "SendSIGKILL=yes" backup: yes register: db_systemd_fix when: ansible_virtualization_type == "lxc" - name: Reload systemd daemon command: /bin/systemctl daemon-reload when: db_systemd_fix is changed - name: 'Enable service "{{ db_servicename }}"' service: name: "{{ db_servicename }}" state: started enabled: yes - name: "Config: Listen on all ip addresses" lineinfile: path: /etc/mysql/mariadb.conf.d/50-server.cnf regexp: "^ *#* *bind-address" line: "bind-address = 0.0.0.0" backup: yes notify: 'Restart MariaDB' - name: "Config: Set server-id" lineinfile: dest: /etc/mysql/mariadb.conf.d/50-server.cnf regexp: "^ *#* *server-id" line: "server-id = {{ db_server_id }}" backup: yes notify: 'Restart MariaDB' - name: "Config: Enable binlog" lineinfile: dest: /etc/mysql/mariadb.conf.d/50-server.cnf regexp: "^ *#* *log_bin" line: "log_bin = /var/log/mysql/mysql-bin.log" backup: yes when: db_server_id == 1 notify: 'Restart MariaDB' - name: MariaDB create replication user mysql_user: name: "{{ db_repl_user }}" password: "{{ db_repl_password }}" priv: '*.*:REPLICATION SLAVE' host: "%" state: present notify: 'Restart MariaDB' - name: Get MariaDB master state mysql_info: filter: master_status register: db_master_status - debug: msg: "{{ db_server_id }} - {{ db_master_status.master_status }}" when: db_debug|default(False) == True - name: "(Maybe) Restart MariaDB" meta: flush_handlers - name: Get MariaDB master state mysql_info: filter: master_status register: db_master_status_new - debug: msg: "{{ db_server_id }} - {{ db_master_status_new.master_status }}" when: db_debug|default(False) == True - name: "(Master) Reset binlog" command: '/usr/bin/mysql -u root -e "RESET MASTER"' when: db_server_id == 1 and db_master_status.master_status == {} - name: "(Slave) Get status" mysql_replication: mode: getslave register: db_slave_status - debug: var: db_slave_status when: db_debug|default(False) == True - name: "(Slave) Setup replication" command: '/usr/bin/mysql -u root -e "CHANGE MASTER TO master_host=\"{{ hostvars["db-01"]["ansible_default_ipv4"].address }}\", master_user=\"{{ db_repl_user }}\", master_password=\"{{ db_repl_password }}\", master_use_gtid=current_pos"' when: db_server_id != 1 and db_slave_status.Slave_IO_Running|default("No") == "No" - name: "(Slave) Start slave" mysql_replication: mode: startslave when: db_server_id != 1 and db_slave_status.Slave_IO_Running|default("No") == "No"