Merge "Add ansible nfs role"
diff --git a/ansible/roles/nfs/defaults/main.yml b/ansible/roles/nfs/defaults/main.yml
new file mode 100644
index 0000000..a5e1d2a
--- /dev/null
+++ b/ansible/roles/nfs/defaults/main.yml
@@ -0,0 +1,5 @@
+---
+nfs_services:
+  RedHat:
+    - rpcbind
+    - nfs
diff --git a/ansible/roles/nfs/tasks/main.yml b/ansible/roles/nfs/tasks/main.yml
new file mode 100644
index 0000000..32194d1
--- /dev/null
+++ b/ansible/roles/nfs/tasks/main.yml
@@ -0,0 +1,33 @@
+---
+- name: Create nfs directory
+  file:
+    path: "{{ nfs_mount_path }}"
+    state: directory
+    mode: 0777
+
+- name: Setup nfs server
+  block:
+    - name: Start services
+      systemd:
+        name: "{{ item }}"
+        state: started
+      with_items: "{{ nfs_services[ansible_os_family] }}"
+
+    - name: Add hosts to exports
+      template:
+        src: exports.j2
+        dest: /etc/exports
+
+    - name: Export nfs
+      command: exportfs -ar
+  when:
+    - "'nfs-server' in group_names"
+
+- name: Mount dockerdata-nfs
+  mount:
+    path: "{{ nfs_mount_path }}"
+    src: "{{ hostvars[groups['nfs-server'].0].ansible_host }}:{{ nfs_mount_path }}"
+    fstype: nfs
+    state: mounted
+  when:
+    - "'nfs-server' not in group_names"
diff --git a/ansible/roles/nfs/templates/exports.j2 b/ansible/roles/nfs/templates/exports.j2
new file mode 100644
index 0000000..1f6956c
--- /dev/null
+++ b/ansible/roles/nfs/templates/exports.j2
@@ -0,0 +1,3 @@
+{% for host in groups.kubernetes[1:] -%}
+    {{ nfs_mount_path }}  {{ hostvars[host].ansible_host }}(rw,sync,no_root_squash,no_subtree_check)
+{% endfor %}