Template for master slave mariadb configuration

This commit is contained in:
2016-02-02 08:35:34 -05:00
parent dbd43ecb7a
commit d3c83613bb
7 changed files with 60 additions and 28 deletions

View File

@@ -2,4 +2,6 @@
# Variables listed here are applicable to all host groups # Variables listed here are applicable to all host groups
repository: https://github.com/jcwimer/wrestlingApp.git repository: https://github.com/jcwimer/wrestlingApp.git
replication_password: something
read_write_password: something

View File

@@ -1,9 +0,0 @@
---
# The variables file used by the playbooks in the dbservers group.
# These don't have to be explicitly imported by vars_files: they are autopopulated.
mysqlservice: mysqld
mysql_port: 3306
dbuser: foouser
dbname: foodb
upassword: abc

18
hosts
View File

@@ -4,18 +4,20 @@ webhostname
[workers] [workers]
woker1 woker1
[dbfirstclustermachine] [masterdb]
db1-hostname db1-hostname server_id=1
[dbservers] [slavedbs]
db2-hostname db2-hostname server_id=2
db3-hostname db3-hostname server_id=3
[haproxy] [haproxy]
haproxy-hostname haproxy-hostname
[db-internal-ips] [masterdb-internal]
[web-internal-ips] [slavedbs-internal]
[proxy-internal-ip] [web-internal]
[proxy-internal]

View File

@@ -1,5 +1,7 @@
--- ---
# This installs mariadb and galera on db nodes # This installs mariadb and galera on db nodes
# https://mariadb.com/blog/devops-mariadb-part-1
# https://mariadb.com/blog/devops-mariadb-and-ansible-part-2
- name: Update apt - name: Update apt
apt: update_cache=yes apt: update_cache=yes
@@ -7,15 +9,23 @@
- name: Install software properties - name: Install software properties
apt: name=software-properties-common state=present apt: name=software-properties-common state=present
- name: Add galera apt repo - name: Install MariaDB repository
apt_key: url=hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db apt_repository: repo='deb http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/ubuntu trusty main' state=present
apt_repository: repo='deb [arch=amd64,i386] http://ftp.osuosl.org/pub/mariadb/repo/10.1/ubuntu trusty main'
- name: Update apt - name: Add repository key to the system
apt: udpate_cache=yes apt_key: keyserver=keyserver.ubuntu.com id=0xcbcb082a1bb943db
- name: Install mariadb - name: Install MariaDB Server
apt: name=mariadb-server state=present apt: name=mariadb-server state=latest update_cache=yes
- name: Install python module
apt: name=python-mysqldb state=installed
- name: Create replication account
mysql_user: name=repl host="%" password={{ replication_password }} priv=*.*:"REPLICATION SLAVE" state=present
- name: Create readwrite user
mysql_user: name=rwuser host="%" password={{ read_write_password }} priv=*.*:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP state=present
- name: Modify configuration file to listen on all interfaces
lineinfile: dest=/etc/mysql/my.cnf regexp="^bind-address" line="bind-address=0.0.0.0"

View File

@@ -0,0 +1,13 @@
---
# This sets up the wrestlingtourney database and starts the binlogs
# https://mariadb.com/blog/devops-mariadb-part-1
# https://mariadb.com/blog/devops-mariadb-and-ansible-part-2
- name: Modify configuration file to setup server ID
lineinfile: dest=/etc/mysql/my.cnf regexp="^#server-id" line="server-id=1"
- name: Restart mysql service
service: name=mysql state=restarted
- name: Reset master binlog
command: /usr/bin/mysql -u root -e "RESET MASTER"

View File

@@ -0,0 +1,13 @@
---
# This installs mariadb and galera on db nodes
# https://mariadb.com/blog/devops-mariadb-part-1
# https://mariadb.com/blog/devops-mariadb-and-ansible-part-2
- name: Modify configuration file to setup server ID
lineinfile: dest=/etc/mysql/my.cnf regexp="^#server-id" line="server-id=2"
- name: Setup replication
command: /usr/bin/mysql -uroot -e "CHANGE MASTER TO master_host='192.168.50.2', master_user='repl', master_password='{{ replication_password }}', master_use_gtid=current_pos"
- name: Restart mysql service
service: name=mysql state=restarted

View File

@@ -24,20 +24,21 @@
- applicationvars - applicationvars
- worker - worker
- name: deploy first db and create cluster - name: deploy master db
hosts: dbfirstclustermachine hosts: masterdb
remote_user: root remote_user: root
roles: roles:
- db - db
- firstdb - masterdb
- name: deploy mysql and configure database - name: deploy mysql and configure database
hosts: dbservers hosts: slavedbs
remote_user: root remote_user: root
roles: roles:
- db - db
- slavedb
- name: deploy haproxy - name: deploy haproxy
hosts: proxy hosts: proxy