114 lines
3.0 KiB
YAML
114 lines
3.0 KiB
YAML
- hosts: all
|
|
become: true
|
|
tasks:
|
|
|
|
- name: update
|
|
apt:
|
|
update_cache: yes
|
|
|
|
- name: install mysql
|
|
apt:
|
|
name: mysql-server
|
|
|
|
- name: copy mysql dump
|
|
copy:
|
|
src: bet.dmp
|
|
dest: /tmp/bet.dmp
|
|
|
|
- name: create db
|
|
shell: mysql -e "CREATE DATABASE IF NOT EXISTS bet;"
|
|
|
|
- name: create user replication
|
|
shell: mysql -e "CREATE USER IF NOT EXISTS 'replication'@'%' IDENTIFIED BY 'mySyperPass';"
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: replication allow user
|
|
shell: mysql -e "GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';"
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: change bind-address mysql-master
|
|
lineinfile:
|
|
path: /etc/mysql/mysql.conf.d/mysqld.cnf
|
|
regexp: "^bind-address.*"
|
|
line: 'bind-address = 0.0.0.0'
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: upload dump mysql-master
|
|
shell: mysql bet < /tmp/bet.dmp
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: conf replication mysql-master
|
|
blockinfile:
|
|
path: /etc/mysql/mysql.conf.d/mysqld.cnf
|
|
block: |
|
|
server-id=1
|
|
gtid-mode=ON
|
|
enforce-gtid-consistency
|
|
log-replica-updates
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: restart mysql
|
|
systemd:
|
|
name: mysql
|
|
state: restarted
|
|
when: ansible_hostname == "mysql-master"
|
|
|
|
- name: create temp db
|
|
shell: mysql -e "CREATE DATABASE IF NOT EXISTS temp_bet;"
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: upload dump to temp db
|
|
shell: mysql temp_bet < /tmp/bet.dmp
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: dump the required tables
|
|
shell: mysqldump temp_bet bookmaker competition market odds outcome > /tmp/bet_new.sql
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: upload dump
|
|
shell: mysql bet < /tmp/bet_new.sql
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: drop temp db
|
|
shell: mysql -e "DROP DATABASE temp_bet;"
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: conf replication mysql-slave
|
|
blockinfile:
|
|
path: /etc/mysql/mysql.conf.d/mysqld.cnf
|
|
block: |
|
|
server-id=2
|
|
gtid-mode=ON
|
|
enforce-gtid-consistency
|
|
log-replica-updates
|
|
replicate-do-table = bet.bookmaker
|
|
replicate-do-table = bet.competition
|
|
replicate-do-table = bet.market
|
|
replicate-do-table = bet.odds
|
|
replicate-do-table = bet.outcome
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: restart mysql
|
|
systemd:
|
|
name: mysql
|
|
state: restarted
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: enable replication
|
|
shell: |
|
|
mysql -e "CHANGE REPLICATION SOURCE TO
|
|
SOURCE_HOST = '192.168.50.10',
|
|
SOURCE_USER = 'replication',
|
|
SOURCE_PASSWORD = 'mySyperPass',
|
|
SOURCE_AUTO_POSITION = 1,
|
|
GET_SOURCE_PUBLIC_KEY = 1;"
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
- name: start replication mysql-slave
|
|
shell: mysql -e "START REPLICA;"
|
|
when: ansible_hostname == "mysql-slave"
|
|
|
|
|
|
|
|
|