# We run two servers listening different ports # to be able to check replication (one server for master, another for standby). - name: Install MariaDB repo yum_repository: name: MariaDB description: MariaDB official repo baseurl: http://yum.mariadb.org/10.1/centos7-amd64 gpgkey: https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck: yes - name: Install MariaDB packages on RedHat family OS yum: name: "{{ item }}" enablerepo: epel loop: - MariaDB-server - MariaDB-client when: ansible_os_family == 'RedHat' - name: Create directories for standby file: state: directory path: "{{ item }}" owner: mysql group: mysql loop: - "{{ master_datadir }}" - "{{ standby_datadir }}" - "{{ standby_logdir }}" - "{{ default_logdir }}" - name: Copy cnf template template: src: my.cnf.j2 dest: /etc/my.cnf owner: mysql group: mysql force: yes - name: Initialize DBs shell: 'mysql_install_db --user=mysql --datadir={{ item }}' loop: - '{{ master_datadir }}' - '{{ standby_datadir }}' - name: Start services shell: 'mysqld_multi --log=/var/log/mariadb/mariadb.log start 1,2' - name: Pause pause: seconds=3 ########### For painful debug uncomment the lines below ## #- name: DEBUG Check stratup log # shell: cat /var/log/mariadb/mariadb.log #- name: DEBUG Check mysql_safe err log # shell: cat '{{ mysql_safe_err_log }}' #- name: DEBUG Check processes # shell: 'ps aux | grep mysqld | grep -v "grep\|root"' #- name: DEBUG # yum: name=net-tools #- name: DEBUG # shell: "netstat -ntpl" #- name: DEBUG # shell: cat /etc/my.cnf ########################################################## - name: Check connection to the master shell: 'echo "SHOW DATABASES;" | mysql -P {{ master_port }} -h 127.0.0.1' - name: Check connection to the standby shell: "echo \"SHOW VARIABLES LIKE 'datadir';\" | mysql -P {{ standby_port }} -h 127.0.0.1"