From dd4606259edc1354245b731d33ffd8e1cb9e8d39 Mon Sep 17 00:00:00 2001
From: Chris Hines <chris.hines@monash.edu>
Date: Tue, 29 Sep 2015 14:54:51 +1000
Subject: [PATCH] add gluster roles

---
 .../gluster_client/files/glusterfs-epel.repo  | 22 +++++++++
 roles/gluster_client/tasks/main.yml           | 22 +++++++++
 .../gluster_server/files/glusterfs-epel.repo  | 22 +++++++++
 roles/gluster_server/tasks/main.yml           | 47 +++++++++++++++++++
 4 files changed, 113 insertions(+)
 create mode 100644 roles/gluster_client/files/glusterfs-epel.repo
 create mode 100644 roles/gluster_client/tasks/main.yml
 create mode 100644 roles/gluster_server/files/glusterfs-epel.repo
 create mode 100644 roles/gluster_server/tasks/main.yml

diff --git a/roles/gluster_client/files/glusterfs-epel.repo b/roles/gluster_client/files/glusterfs-epel.repo
new file mode 100644
index 00000000..843b4bae
--- /dev/null
+++ b/roles/gluster_client/files/glusterfs-epel.repo
@@ -0,0 +1,22 @@
+# Place this file in your /etc/yum.repos.d/ directory
+
+[glusterfs-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/$basearch/
+enabled=1
+skip_if_unavailable=1
+gpgcheck=0
+
+[glusterfs-noarch-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/noarch
+enabled=1
+skip_if_unavailable=1
+gpgcheck=0
+
+[glusterfs-source-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes. - Source
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/SRPMS
+enabled=0
+skip_if_unavailable=1
+gpgcheck=0
diff --git a/roles/gluster_client/tasks/main.yml b/roles/gluster_client/tasks/main.yml
new file mode 100644
index 00000000..75964d8f
--- /dev/null
+++ b/roles/gluster_client/tasks/main.yml
@@ -0,0 +1,22 @@
+---
+- name: add repo
+  copy: src=glusterfs-epel.repo dest=/etc/yum.repos.d/glusterfs-epel.repo
+  sudo: true
+  when: ansible_os_family == 'RedHat'
+
+- name: install gluster
+  yum: name={{ item }} state='latest'
+  when: ansible_os_family == 'RedHat'
+  with_items:
+  - glusterfs-client
+  sudo: true
+
+- name: install gluster
+  apt: name=glusterfs state='latest'
+  when: ansible_os_family == 'Debian'
+  sudo: true
+
+- name: mount volume
+#mount: name="{{ volmnt }}" src="{{ gluster_servers[0] }}:/{{ volname }}" state="mounted" fstype="glusterfs" opts="defaults,acl,_netdev,backupvolfile-server={{ gluster_servers[1] }}"
+  mount: name="{{ volmnt }}" src="{{ gluster_servers[0] }}:/{{ volname }}" state="mounted" fstype="glusterfs" opts="defaults,acl,backupvolfile-server={{ gluster_servers[1] }},noauto,comment=systemd.automount"
+  sudo: true
diff --git a/roles/gluster_server/files/glusterfs-epel.repo b/roles/gluster_server/files/glusterfs-epel.repo
new file mode 100644
index 00000000..843b4bae
--- /dev/null
+++ b/roles/gluster_server/files/glusterfs-epel.repo
@@ -0,0 +1,22 @@
+# Place this file in your /etc/yum.repos.d/ directory
+
+[glusterfs-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/$basearch/
+enabled=1
+skip_if_unavailable=1
+gpgcheck=0
+
+[glusterfs-noarch-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/noarch
+enabled=1
+skip_if_unavailable=1
+gpgcheck=0
+
+[glusterfs-source-epel]
+name=GlusterFS is a clustered file-system capable of scaling to several petabytes. - Source
+baseurl=http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/EPEL.repo/epel-$releasever/SRPMS
+enabled=0
+skip_if_unavailable=1
+gpgcheck=0
diff --git a/roles/gluster_server/tasks/main.yml b/roles/gluster_server/tasks/main.yml
new file mode 100644
index 00000000..2abeee92
--- /dev/null
+++ b/roles/gluster_server/tasks/main.yml
@@ -0,0 +1,47 @@
+---
+
+- name: add repo
+  copy: src=glusterfs-epel.repo dest=/etc/yum.repos.d/glusterfs-epel.repo
+  sudo: true
+  when: ansible_os_family == 'RedHat'
+
+- name: install gluster
+  yum: name={{ item }} state='latest'
+  when: ansible_os_family == 'RedHat'
+  with_items:
+  - glusterfs
+  - glusterfs-server
+
+  sudo: true
+
+- name: install gluster
+  apt: name=glusterfs state='latest'
+  when: ansible_os_family == 'Debian'
+  sudo: true
+
+- name: start daemon
+  service: name=glusterd enabled=yes state=started
+  sudo: true
+
+- name: make server list
+  set_fact: 
+    server_list: "{{ gluster_servers|join(',') }}"
+
+
+- name: echo server list
+  debug: var=server_list
+
+- name: make brick dir
+  file: state=directory path="{{ brickmnt }}/brick"
+  sudo: true
+
+- name: create volume
+  gluster_volume: 
+    name: "{{ volname }}"
+    brick: "{{ brickmnt }}/brick"
+    cluster: "{{ server_list }}"
+    replicas: "{{ replicas }}"
+    state: present
+  sudo: true
+  run_once: true
+
-- 
GitLab