summaryrefslogtreecommitdiffstats
path: root/roles/glusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'roles/glusterfs')
-rw-r--r--roles/glusterfs/defaults/main.yml1
-rw-r--r--roles/glusterfs/files/glusterblock-link.service8
-rw-r--r--roles/glusterfs/tasks/cfg/vols3.yml2
-rw-r--r--roles/glusterfs/tasks/common.yml7
-rw-r--r--roles/glusterfs/tasks/create_block.yml18
-rw-r--r--roles/glusterfs/tasks/create_domain.yml9
-rw-r--r--roles/glusterfs/tasks/create_volume.yml1
-rw-r--r--roles/glusterfs/tasks/data/vols2.yml2
-rw-r--r--roles/glusterfs/tasks/data/vols3.yml2
-rw-r--r--roles/glusterfs/tasks/db/vols3.yml2
-rw-r--r--roles/glusterfs/tasks/la/vols3.yml2
-rw-r--r--roles/glusterfs/tasks/setup-openshift-server.yml16
12 files changed, 61 insertions, 9 deletions
diff --git a/roles/glusterfs/defaults/main.yml b/roles/glusterfs/defaults/main.yml
index 700838d..d66ff5e 100644
--- a/roles/glusterfs/defaults/main.yml
+++ b/roles/glusterfs/defaults/main.yml
@@ -6,6 +6,7 @@ glusterfs_network: "{{ ands_storage_network }}"
glusterfs_servers: "{{ ands_storage_servers }}"
glusterfs_bricks_path: "{{ ands_data_path }}/glusterfs"
glusterfs_domains: "{{ ands_storage_domains }}"
+glusterfs_block_volumes: "{{ ands_block_volumes | default({}) }}"
glusterfs_all_subroles: "{{ [ 'software', 'volumes' ] }}"
glusterfs_subroles: "{{ ( subrole is defined ) | ternary( [ subrole ], glusterfs_all_subroles ) }}"
diff --git a/roles/glusterfs/files/glusterblock-link.service b/roles/glusterfs/files/glusterblock-link.service
new file mode 100644
index 0000000..9aecd40
--- /dev/null
+++ b/roles/glusterfs/files/glusterblock-link.service
@@ -0,0 +1,8 @@
+[Unit]
+After=origin-node.service
+
+[Service]
+ExecStart=/usr/bin/ln -sf /run/glusterd/gluster-blockd.socket /run/gluster-blockd.socket
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/glusterfs/tasks/cfg/vols3.yml b/roles/glusterfs/tasks/cfg/vols3.yml
index d8ed728..efd613c 100644
--- a/roles/glusterfs/tasks/cfg/vols3.yml
+++ b/roles/glusterfs/tasks/cfg/vols3.yml
@@ -7,7 +7,7 @@
cluster: "{{ domain_servers | join(',') }}"
replicas: "{{ domain_servers | length }}"
bricks: "{{ glusterfs_bricks_path }}/brick-{{ name }}"
- transport: "{{ glusterfs_transport }}"
+ transport: "{{ transport }}"
- name: "Start {{ name }} volume"
diff --git a/roles/glusterfs/tasks/common.yml b/roles/glusterfs/tasks/common.yml
index 67fb815..c94f86e 100644
--- a/roles/glusterfs/tasks/common.yml
+++ b/roles/glusterfs/tasks/common.yml
@@ -8,8 +8,13 @@
- glusterfs-cli
- glusterfs-fuse
- glusterfs-rdma
- - heketi-client
- libsemanage-python
+
+- name: Ensure GlusterFS is installed
+ yum: name={{item}} state=latest enablerepo="centos-gluster{{ glusterfs_version }}-test"
+ with_items:
+ - heketi-client
+ - gluster-block
- name: Allow fuse in SELinux configuration
seboolean: name="virt_sandbox_use_fusefs" state="yes" persistent="yes"
diff --git a/roles/glusterfs/tasks/create_block.yml b/roles/glusterfs/tasks/create_block.yml
new file mode 100644
index 0000000..5b30f02
--- /dev/null
+++ b/roles/glusterfs/tasks/create_block.yml
@@ -0,0 +1,18 @@
+- name: Check if the holding volume already exists
+ shell: "gluster volume info {{ block.value.volume }}"
+ changed_when: false
+ register: gv_results
+
+- name: Get list of existing block volumes
+ shell: "gluster-block list {{ block.value.volume }}"
+ changed_when: false
+ register: bv_results
+
+- name: Create block volume
+ shell: "gluster-block create {{ block.value.volume }}/{{ block.key }} ha {{ servers | length }} auth disable prealloc no {{ servers | join(',') }} {{ block.value.capacity }}"
+ when: block.key not in bv_results.stdout_lines
+ vars:
+ ha: "{{ block.value.ha | default(3) }}"
+ servers: "{{ domain_servers[0:(ha | int)] }}"
+ loop_control:
+ loop_var: volume
diff --git a/roles/glusterfs/tasks/create_domain.yml b/roles/glusterfs/tasks/create_domain.yml
index 76623f2..99f9959 100644
--- a/roles/glusterfs/tasks/create_domain.yml
+++ b/roles/glusterfs/tasks/create_domain.yml
@@ -14,3 +14,12 @@
domain_servers: "{{ groups[domain.servers] | map('extract', hostvars, 'ands_storage_hostname') | list }}"
loop_control:
loop_var: volume
+
+- name: Create block volumes
+ include_tasks: create_block.yml
+ when: block.value.volume in domain.volumes.keys()
+ with_dict: "{{ glusterfs_block_volumes }}"
+ vars:
+ domain_servers: "{{ groups[domain.servers] | map('extract', hostvars, 'ands_storage_hostname') | list }}"
+ loop_control:
+ loop_var: block
diff --git a/roles/glusterfs/tasks/create_volume.yml b/roles/glusterfs/tasks/create_volume.yml
index ca4f39a..a94b96f 100644
--- a/roles/glusterfs/tasks/create_volume.yml
+++ b/roles/glusterfs/tasks/create_volume.yml
@@ -2,3 +2,4 @@
- include_tasks: "{{ volume.value.type }}/vols{{((domain_servers | length) < 4) | ternary((domain_servers | length), 3) }}.yml"
vars:
name: "{{ volume.key }}"
+ transport: "{{ volume.value.transport | default(glusterfs_transport) }}"
diff --git a/roles/glusterfs/tasks/data/vols2.yml b/roles/glusterfs/tasks/data/vols2.yml
index d8ed728..efd613c 100644
--- a/roles/glusterfs/tasks/data/vols2.yml
+++ b/roles/glusterfs/tasks/data/vols2.yml
@@ -7,7 +7,7 @@
cluster: "{{ domain_servers | join(',') }}"
replicas: "{{ domain_servers | length }}"
bricks: "{{ glusterfs_bricks_path }}/brick-{{ name }}"
- transport: "{{ glusterfs_transport }}"
+ transport: "{{ transport }}"
- name: "Start {{ name }} volume"
diff --git a/roles/glusterfs/tasks/data/vols3.yml b/roles/glusterfs/tasks/data/vols3.yml
index 14c3763..f28a38c 100644
--- a/roles/glusterfs/tasks/data/vols3.yml
+++ b/roles/glusterfs/tasks/data/vols3.yml
@@ -8,7 +8,7 @@
replicas: 3
arbiters: 1
bricks: "{{ glusterfs_bricks_path }}/brick-{{ name }}"
- transport: "{{ glusterfs_transport }}"
+ transport: "{{ transport }}"
- name: "Start {{ name }} volume"
diff --git a/roles/glusterfs/tasks/db/vols3.yml b/roles/glusterfs/tasks/db/vols3.yml
index cbd238d..45cb0ce 100644
--- a/roles/glusterfs/tasks/db/vols3.yml
+++ b/roles/glusterfs/tasks/db/vols3.yml
@@ -8,7 +8,7 @@
disperses: "3"
redundancies: "1"
bricks: "{{ glusterfs_bricks_path }}/brick-{{ name }}"
- transport: "{{ glusterfs_transport }}"
+ transport: "{{ transport }}"
- name: "Start {{ name }} volume"
diff --git a/roles/glusterfs/tasks/la/vols3.yml b/roles/glusterfs/tasks/la/vols3.yml
index ada8f95..af1e889 100644
--- a/roles/glusterfs/tasks/la/vols3.yml
+++ b/roles/glusterfs/tasks/la/vols3.yml
@@ -6,7 +6,7 @@
host: "{{ ands_storage_hostname }}"
cluster: "{{ domain_servers | join(',') }}"
bricks: "{{ glusterfs_bricks_path }}/brick-{{ name }}"
- transport: "{{ glusterfs_transport }}"
+ transport: "{{ transport }}"
- name: "Start {{ name }} volume"
gluster_volume: state="started" name="{{ name }}"
diff --git a/roles/glusterfs/tasks/setup-openshift-server.yml b/roles/glusterfs/tasks/setup-openshift-server.yml
index 20ebbf8..c4fcbcc 100644
--- a/roles/glusterfs/tasks/setup-openshift-server.yml
+++ b/roles/glusterfs/tasks/setup-openshift-server.yml
@@ -1,9 +1,19 @@
---
- name: Link control socket
- file: src="/run/glusterd/glusterd.socket" dest="/run/glusterd.socket" state="link"
+ file: src="/run/glusterd/{{ item }}" dest="/run/{{ item }}" state="link"
+ with_items:
+ - glusterd.socket
+ - gluster-blockd.socket
- name: Copy systemd unit to recreate link on re-start
- copy: src="gluster-link.service" dest="/etc/systemd/system/gluster-link.service" owner="root" group="root" mode="0644"
+ copy: src="{{ item }}" dest="/etc/systemd/system/{{ item }}" owner="root" group="root" mode="0644"
+ with_items:
+ - gluster-link.service
+ - glusterblock-link.service
- name: Enable systemd unit
- systemd: enabled=true name=gluster-link daemon_reload=yes \ No newline at end of file
+ systemd: enabled=true name={{ item }} daemon_reload=yes
+ with_items:
+ - gluster-link.service
+ - glusterblock-link.service
+ - rpcbind