diff --git a/roles/gluster_client/files/glusterfs-epel.repo b/roles/gluster_client/files/glusterfs-epel.repo new file mode 100644 index 0000000000000000000000000000000000000000..843b4baef3cf4d81aca369e49c44b92c1599c3cf --- /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 0000000000000000000000000000000000000000..75964d8f9f61391b0c6c7b1c1f7fa6664e9dbed6 --- /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 0000000000000000000000000000000000000000..843b4baef3cf4d81aca369e49c44b92c1599c3cf --- /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 0000000000000000000000000000000000000000..2abeee927077069549007176b14e3719e2182931 --- /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 +