Template for master slave mariadb configuration
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
18
hosts
@@ -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]
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
13
roles/masterdb/tasks/main.yml
Normal file
13
roles/masterdb/tasks/main.yml
Normal 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"
|
||||||
13
roles/slavedb/tasks/main.yml
Normal file
13
roles/slavedb/tasks/main.yml
Normal 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
|
||||||
9
site.yml
9
site.yml
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user