|
|
|
# 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"
|