diff options
| author | Suren A. Chilingaryan <csa@suren.me> | 2018-03-18 22:59:31 +0100 | 
|---|---|---|
| committer | Suren A. Chilingaryan <csa@suren.me> | 2018-03-18 22:59:31 +0100 | 
| commit | 47f350bc3aa85a8bd406d95faf084df2abf74ae9 (patch) | |
| tree | 72ad1e91bac46d3457f89781dc90f0d6c1c074d5 /roles/glusterfs | |
| parent | 006f333828db373435daa15483d2ab753048f62a (diff) | |
Second revision: includes hostpath mounts, gluster block storage, kaas apps, etc.
Diffstat (limited to 'roles/glusterfs')
| -rw-r--r-- | roles/glusterfs/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/glusterfs/files/glusterblock-link.service | 8 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/cfg/vols3.yml | 2 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/common.yml | 7 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/create_block.yml | 18 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/create_domain.yml | 9 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/create_volume.yml | 1 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/data/vols2.yml | 2 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/data/vols3.yml | 2 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/db/vols3.yml | 2 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/la/vols3.yml | 2 | ||||
| -rw-r--r-- | roles/glusterfs/tasks/setup-openshift-server.yml | 16 | 
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 | 
