Initial commit
This commit is contained in:
parent
871f8267ec
commit
db8abb89d8
12 changed files with 328 additions and 0 deletions
14
roles/mariadb_cluster/tasks/bootstrap-galera.yml
Normal file
14
roles/mariadb_cluster/tasks/bootstrap-galera.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
# file: roles/mariadb_cluster/tasks/bootstrap-galera.yml
|
||||
|
||||
- name: Stop MariaDB on first MariaDB Galera cluster node
|
||||
service: name=mariadb state=stopped
|
||||
when: inventory_hostname == groups['mariadb_cluster'][0]
|
||||
|
||||
- name: Bootstrap first MariaDB Galera cluster node
|
||||
command: galera_new_cluster
|
||||
when: inventory_hostname == groups['mariadb_cluster'][0]
|
||||
|
||||
- name: Restart the other MariaDB Galera cluster nodes
|
||||
service: name=mariadb state=restarted
|
||||
when: inventory_hostname != groups['mariadb_cluster'][0]
|
76
roles/mariadb_cluster/tasks/main.yml
Normal file
76
roles/mariadb_cluster/tasks/main.yml
Normal file
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
# file: roles/mariadb_cluster/tasks/main.yml
|
||||
|
||||
- name: Create variable of other members IPs to be included into the cluster
|
||||
set_fact: nodelist={%for host in groups['mariadb_cluster']|difference([inventory_hostname])%}{{hostvars[host].ansible_host}}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
- name: Install prereq packages
|
||||
package:
|
||||
name:
|
||||
- mariadb-server-galera
|
||||
- mariadb-server
|
||||
- galera
|
||||
state: latest
|
||||
|
||||
- name: Update galera config
|
||||
template:
|
||||
src: "galera.cnf.j2"
|
||||
dest: "/etc/my.cnf.d/galera.cnf"
|
||||
notify: Bootstrap Galera
|
||||
|
||||
- name: Enable firewall rule for MySQL access
|
||||
firewalld:
|
||||
port: 3306/tcp
|
||||
permanent: yes
|
||||
immediate: yes
|
||||
state: enabled
|
||||
notify: Reload firewalld
|
||||
when: mariadb_cluster_access_ip == ""
|
||||
|
||||
- name: "Enable firewall rule for MySQL access to Access IP"
|
||||
firewalld:
|
||||
rich_rule: 'rule family="ipv4" source address="{{ mariadb_cluster_access_ip }}" port port="3306" protocol="tcp" accept'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
immediate: yes
|
||||
notify: Reload firewalld
|
||||
when: mariadb_cluster_access_ip != ""
|
||||
|
||||
- name: Setup access for other servers
|
||||
include_tasks: setup-server.yml
|
||||
loop: "{{ groups['mariadb_cluster']|difference([inventory_hostname]) }}"
|
||||
loop_control:
|
||||
extended: yes
|
||||
|
||||
- name: Place mariadb-fail script
|
||||
template:
|
||||
src: "mariadb-fail.j2"
|
||||
dest: "/usr/local/sbin/mariadb-fail"
|
||||
owner: root
|
||||
mode: 755
|
||||
|
||||
- name: Deploy mariadb-fail service
|
||||
template:
|
||||
src: mariadb-fail.service.j2
|
||||
dest: /etc/systemd/system/mariadb-fail.service
|
||||
notify: Daemon Reload
|
||||
|
||||
- name: Create directory for mariadb override
|
||||
file:
|
||||
path: "/etc/systemd/system/mariadb.service.d"
|
||||
state: directory
|
||||
|
||||
- name: Deploy mariadb override
|
||||
template:
|
||||
src: mariadb-override.conf.j2
|
||||
dest: /etc/systemd/system/mariadb.service.d/override.conf
|
||||
notify: Daemon Reload
|
||||
|
||||
- name: Flush handlers
|
||||
meta: flush_handlers
|
||||
|
||||
- name: Start and enable mariadb
|
||||
service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
34
roles/mariadb_cluster/tasks/setup-server.yml
Normal file
34
roles/mariadb_cluster/tasks/setup-server.yml
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
# file: roles/mariadb_cluster/tasks/setup-server.yml
|
||||
|
||||
- name: "{{ hostvars[item]['ansible_hostname'] }} - Enable firewall rule for Galera cluster replication traffic (TCP)"
|
||||
firewalld:
|
||||
rich_rule: 'rule family="ipv4" source address="{{ hostvars[item]["ansible_host"] }}" port port="4567" protocol="tcp" accept'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
immediate: yes
|
||||
notify: Reload firewalld
|
||||
|
||||
- name: "{{ hostvars[item]['ansible_hostname'] }} - Enable firewall rule for Galera cluster replication traffic (UDP)"
|
||||
firewalld:
|
||||
rich_rule: 'rule family="ipv4" source address="{{ hostvars[item]["ansible_host"] }}" port port="4567" protocol="udp" accept'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
immediate: yes
|
||||
notify: Reload firewalld
|
||||
|
||||
- name: "{{ hostvars[item]['ansible_hostname'] }} - Enable firewall rule for Incremental State Transfer"
|
||||
firewalld:
|
||||
rich_rule: 'rule family="ipv4" source address="{{ hostvars[item]["ansible_host"] }}" port port="4568" protocol="tcp" accept'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
immediate: yes
|
||||
notify: Reload firewalld
|
||||
|
||||
- name: "{{ hostvars[item]['ansible_hostname'] }} - Enable firewall rule for State Snapshot Transfer"
|
||||
firewalld:
|
||||
rich_rule: 'rule family="ipv4" source address="{{ hostvars[item]["ansible_host"] }}" port port="4444" protocol="tcp" accept'
|
||||
permanent: yes
|
||||
state: enabled
|
||||
immediate: yes
|
||||
notify: Reload firewalld
|
Loading…
Add table
Add a link
Reference in a new issue