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 %}