From 32d2969fc14579624246ad34a39da7304633ad85 Mon Sep 17 00:00:00 2001
From: shahaan <shahaan@gmail.com>
Date: Tue, 2 Dec 2014 12:27:31 +1100
Subject: [PATCH] Committing syncExports role and relevant changes

---
 installNFS.yml                             |  9 ++-------
 roles/nfs-client/tasks/mountFileSystem.yml |  8 +++++++-
 roles/nfs-server/tasks/startServer.yml     |  3 ---
 roles/nfs-server/templates/exports.j2      |  4 +++-
 roles/syncExports/tasks/addExports.yml     |  6 ++++++
 roles/syncExports/tasks/main.yml           |  2 ++
 roles/syncExports/templates/exports.j2     |  4 ++++
 syncNFS.yml                                | 14 ++++++++++++++
 8 files changed, 38 insertions(+), 12 deletions(-)
 create mode 100644 roles/syncExports/tasks/addExports.yml
 create mode 100644 roles/syncExports/tasks/main.yml
 create mode 100644 roles/syncExports/templates/exports.j2
 create mode 100644 syncNFS.yml

diff --git a/installNFS.yml b/installNFS.yml
index 8752a25e..0c6b1c24 100644
--- a/installNFS.yml
+++ b/installNFS.yml
@@ -11,9 +11,6 @@
     - nfs-server
   sudo: true
   vars: 
-    ansible_ssh_private_key_file: "/home/sgeadmin/.ssh/shahaan.pem"
-    ansible_ssh_user: "ec2-user"
-    nfs_network: "10.8.0.0/16"
     x509_ca_server: vm-118-138-240-224.erc.monash.edu.au
 - 
   hosts: openvpn-clients
@@ -23,12 +20,10 @@
     - easy-rsa-certificate 
     - OpenVPN-Client
     - nfs-common
+    - syncExports
     - nfs-client
   sudo: true
   vars: 
-    ansible_ssh_private_key_file: "/home/sgeadmin/.ssh/shahaan.pem"
-    ansible_ssh_user: "ec2-user"
     x509_ca_server: vm-118-138-240-224.erc.monash.edu.au
     openvpn_servers: ['vm-118-138-240-224.erc.monash.edu.au']
-    server: vm-118-138-240-224.erc.monash.edu.au
-    nfs_server: "10.8.0.1"
+    nfs_server: "vm-118-138-240-224.erc.monash.edu.au"
diff --git a/roles/nfs-client/tasks/mountFileSystem.yml b/roles/nfs-client/tasks/mountFileSystem.yml
index 7944c079..66da94c1 100644
--- a/roles/nfs-client/tasks/mountFileSystem.yml
+++ b/roles/nfs-client/tasks/mountFileSystem.yml
@@ -1,6 +1,12 @@
 --- 
+-
+ name: "Get the NFS Network"
+ setup: filter="ansible_tun0"
+ register: nfsServer
+ run_once: true
+ delegate_to: "{{ nfs_server }}"
 - 
-  mount: "name={{ item.0 }} src={{ nfs_server }}:{{ item.1 }} fstype={{ nfs_type }} opts={{ nfs_options }} state=mounted"
+  mount: "name={{ item.0 }} src={{ nfsServer['ansible_facts']['ansible_tun0']['ipv4']['address'] }}:{{ item.1 }} fstype={{ nfs_type }} opts={{ nfs_options }} state=mounted"
   name: "Mounting NFS mounts"
   with_together: 
     - destDir
diff --git a/roles/nfs-server/tasks/startServer.yml b/roles/nfs-server/tasks/startServer.yml
index 4821a0a9..17211aff 100644
--- a/roles/nfs-server/tasks/startServer.yml
+++ b/roles/nfs-server/tasks/startServer.yml
@@ -2,9 +2,6 @@
 - 
   name: "Starting rpcbind"
   service: "name=rpcbind state=started"
-- 
-  name: "Copying /etc/exports template"
-  template: "src=exports.j2 dest=/etc/exports mode=0644 owner=root"
 - 
   name: "Start the Server"
   service: "name=nfs state=started"
diff --git a/roles/nfs-server/templates/exports.j2 b/roles/nfs-server/templates/exports.j2
index bada393e..f86fb630 100644
--- a/roles/nfs-server/templates/exports.j2
+++ b/roles/nfs-server/templates/exports.j2
@@ -1 +1,3 @@
-{{ srcDir }}	{{ nfs_network }}(rw,sync,root_squash)
+{{ % for server in groups['OpenVPN-Servers'] % }}
+	{{ srcDir }}	server['server_network']/network['server_netmask'](rw,sync,root_squash)
+{{ % endfor % }}
diff --git a/roles/syncExports/tasks/addExports.yml b/roles/syncExports/tasks/addExports.yml
new file mode 100644
index 00000000..fb08d1ac
--- /dev/null
+++ b/roles/syncExports/tasks/addExports.yml
@@ -0,0 +1,6 @@
+---
+-
+  name: "Templating /etc/exports"
+  template: src=exports.j2 dest=/etc/exports owner=root group=root mode=644
+  delegate_to: "{{ nfs_server }}"
+  run_once: true
diff --git a/roles/syncExports/tasks/main.yml b/roles/syncExports/tasks/main.yml
new file mode 100644
index 00000000..087f4377
--- /dev/null
+++ b/roles/syncExports/tasks/main.yml
@@ -0,0 +1,2 @@
+---
+- include : addExports.yml
diff --git a/roles/syncExports/templates/exports.j2 b/roles/syncExports/templates/exports.j2
new file mode 100644
index 00000000..2949f722
--- /dev/null
+++ b/roles/syncExports/templates/exports.j2
@@ -0,0 +1,4 @@
+{% for src in srcDir %}
+{{ src }} {% for node in  groups['openvpn-clients'] %}{% for ip in hostvars[node]['ansible_all_ipv4_addresses'] %}{{ ip }}(rw,sync,root_squash) {% endfor %}{% endfor %}
+
+{% endfor %}
diff --git a/syncNFS.yml b/syncNFS.yml
new file mode 100644
index 00000000..f538c66e
--- /dev/null
+++ b/syncNFS.yml
@@ -0,0 +1,14 @@
+--- 
+- 
+  hosts: openvpn-clients
+  remote_user: ec2-user
+  roles: 
+    - syncExports
+    - nfs-client
+  sudo: true
+  vars: 
+    nfs_server: "vm-118-138-240-224.erc.monash.edu.au"
+    openvpn_servers: 
+      - vm-118-138-240-224.erc.monash.edu.au
+    x509_ca_server: vm-118-138-240-224.erc.monash.edu.au
+
-- 
GitLab