47 lines
1.8 KiB
YAML
47 lines
1.8 KiB
YAML
---
|
|
- name: Check if Gluster volume is initialized
|
|
become: true
|
|
stat:
|
|
path: "{{gluster_volume_path}}/{{inventory_hostname}}/brick"
|
|
register: glustervolume
|
|
|
|
- name: Verify Gluster volume path
|
|
become: true
|
|
file:
|
|
path: "{{gluster_volume_path}}/{{inventory_hostname}}/brick"
|
|
state: directory
|
|
|
|
- name: Initialize Gluster Cluster (on first node)
|
|
become: true
|
|
when: glustervolume.stat.exists == false and inventory_hostname == groups['gluster_nodes'][0]
|
|
loop: "{{ groups['gluster_nodes'] }}"
|
|
shell: gluster peer probe {{ item }}
|
|
|
|
- name: Create Gluster Volume (on first node)
|
|
# TODO Make this scalable
|
|
become: true
|
|
when: glustervolume.stat.exists == false and inventory_hostname == groups['gluster_nodes'][0]
|
|
shell: >
|
|
gluster volume create {{gluster_volume_name}} \
|
|
replica 3 \
|
|
{{groups['gluster_nodes'][0]}}:{{gluster_volume_path}}/{{groups['gluster_nodes'][0]}}/brick \
|
|
{{groups['gluster_nodes'][1]}}:{{gluster_volume_path}}/{{groups['gluster_nodes'][1]}}/brick \
|
|
{{groups['gluster_nodes'][2]}}:{{gluster_volume_path}}/{{groups['gluster_nodes'][2]}}/brick
|
|
|
|
- name: Secure Gluster Volume (on first node)
|
|
become: true
|
|
when: inventory_hostname == groups['gluster_nodes'][0]
|
|
shell: >
|
|
gluster volume set {{gluster_volume_name}} auth.allow \
|
|
{{groups['gluster_nodes'][0]}},{{groups['gluster_nodes'][1]}},{{groups['gluster_nodes'][2]}}
|
|
changed_when: false
|
|
|
|
- name: Start Gluster Volume (on first node)
|
|
become: true
|
|
when: glustervolume.stat.exists == false and inventory_hostname == groups['gluster_nodes'][0]
|
|
shell: gluster volume start {{gluster_volume_name}}
|
|
|
|
- name: Wait 60s for Gluster volume to be replicated
|
|
when: glustervolume.stat.exists == false and inventory_hostname == groups['gluster_nodes'][0]
|
|
shell: sleep 60
|