The galera cnf can be the same template across...
nodes.
This commit is contained in:
20
roles/mariadb/files/galera.cnf
Normal file
20
roles/mariadb/files/galera.cnf
Normal file
@ -0,0 +1,20 @@
|
||||
[mysqld]
|
||||
binlog_format=ROW
|
||||
default-storage-engine=innodb
|
||||
innodb_autoinc_lock_mode=2
|
||||
bind-address=0.0.0.0
|
||||
|
||||
# Galera Provider Configuration
|
||||
wsrep_on=ON
|
||||
wsrep_provider=/usr/lib/galera/libgalera_smm.so
|
||||
|
||||
# Galera Cluster Configuration
|
||||
wsrep_cluster_name="test_cluster"
|
||||
wsrep_cluster_address="gcomm://{{ ip_node0 }},{{ ip_node1 }},{{ ip_node2 }}"
|
||||
|
||||
# Galera Synchronization Configuration
|
||||
wsrep_sst_method=rsync
|
||||
|
||||
# Galera Node Configuration
|
||||
wsrep_node_address="{{ listen_ip | default(ansible_default_ipv4.address) }}"
|
||||
wsrep_node_name="{{ ansible_nodename }}"
|
@ -13,9 +13,6 @@
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: start service at boot.
|
||||
command: systemctl reenable mysql.service
|
||||
|
||||
- name: make mariadb settings volume
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
@ -24,30 +21,35 @@
|
||||
with_items:
|
||||
- /srv/mariadb/lib/mysql
|
||||
- /srv/mariadb/etc/mysql
|
||||
- /srv/mariadb/etc/mysql/conf.d
|
||||
|
||||
- name: place settings file
|
||||
copy:
|
||||
src: files/my.cnf
|
||||
dest: /srv/mariadb/etc/mysql
|
||||
dest: /srv/mariadb/etc/mysql/conf.d/my.cnf
|
||||
mode: 660
|
||||
|
||||
- name: Set galara.cnf on first node if we have at least three nodes.
|
||||
copy:
|
||||
src: files/galera-master.cnf
|
||||
- name: Set galara.cnf on node if we have at least three nodes.
|
||||
template:
|
||||
src: files/galera.cnf
|
||||
dest: /srv/mariadb/etc/mysql/conf.d/galera.cnf
|
||||
mode: 660
|
||||
when: ansible_nodename == hostname_node0 and hostvars[groups['mariadb']]|length >= 3
|
||||
|
||||
- name: Set galara.cnf on other nodes if we have at least three nodes.
|
||||
copy:
|
||||
src: files/galera-slave.cnf
|
||||
dest: /srv/mariadb/etc/mysql/conf.d/galera.cnf
|
||||
mode: 660
|
||||
when: ansible_nodename != hostname_node0 and hostvars[groups['mariadb']]|length >= 3
|
||||
when: groups['databases'] | length >= 3
|
||||
|
||||
- command: systemctl daemon-reload
|
||||
|
||||
- name: start service at boot.
|
||||
command: systemctl reenable mysql.service
|
||||
|
||||
# This mimics galera_new_cluster.sh
|
||||
- name: Initialize a new cluster.
|
||||
command: systemctl set-environment _WSREP_NEW_CLUSTER='--wsrep-new-cluster'
|
||||
when: groups['databases'] | length >= 3 and ansible_hostname == hostname_node0
|
||||
|
||||
- name: make sure service is started
|
||||
systemd:
|
||||
name: mysql.service
|
||||
state: started
|
||||
|
||||
- name: Prevent cluster re-initialization
|
||||
command: systemctl set-environment _WSREP_NEW_CLUSTER=''
|
||||
|
@ -9,10 +9,12 @@ Restart=always
|
||||
ExecStartPre=-/usr/bin/docker kill %n || /bin/true
|
||||
ExecStartPre=-/usr/bin/docker rm %n
|
||||
ExecStartPre=/usr/bin/docker pull mariadb:10.2
|
||||
ExecStart=/usr/bin/docker run -p 3306:3306 --name %n \
|
||||
ExecStart=/usr/bin/docker run --name %n \
|
||||
-p 3306:3306 -p 4567:4567 -p 4568:4568 -p 4444:4444 \
|
||||
-v /srv/mariadb/lib/mysql:/var/lib/mysql \
|
||||
-v /srv/mariadb/etc/mysql:/etc/mysql \
|
||||
-e MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }} mariadb:10.2
|
||||
-v /srv/mariadb/etc/mysql/conf.d:/etc/mysql/conf.d \
|
||||
-e MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }} mariadb:10.2 \
|
||||
${MYSQLD_OPTS} ${_WSREP_NEW_CLUSTER} ${_WSREP_START_POSITION}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
Reference in New Issue
Block a user