diff --git a/installNFS.yml b/installNFS.yml
index 8752a25e72d51d928f79ff71e6616dcd08cc61f2..0c6b1c24dfc5e9ffe8a63ccc234fd2bc475e33d0 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/OpenVPN-Server/templates/server.conf.j2 b/roles/OpenVPN-Server/templates/server.conf.j2
index 9d9d5fef88145687378d9e307d5adad91166b364..5ba9060993fcf9f26c181c458071dcfcc9fdc6b2 100644
--- a/roles/OpenVPN-Server/templates/server.conf.j2
+++ b/roles/OpenVPN-Server/templates/server.conf.j2
@@ -93,7 +93,7 @@ dh {{ dhparms_file }}
 # Each client will be able to reach the server
 # on 10.8.0.1. Comment this line out if you are
 # ethernet bridging. See the man page for more info.
-server 10.8.0.0 255.255.255.0
+server {{ server_network }} {{ server_netmask }}
 
 # Maintain a record of client <-> virtual IP address
 # associations in this file.  If OpenVPN goes down or
diff --git a/roles/OpenVPN-Server/vars/main.yml b/roles/OpenVPN-Server/vars/main.yml
index 0118883ff89c549e9482c6c75e34aa36ade35715..ae69f9692b264b7b03980e14253c31ea3298b723 100644
--- a/roles/OpenVPN-Server/vars/main.yml
+++ b/roles/OpenVPN-Server/vars/main.yml
@@ -5,3 +5,5 @@ x509_key_file: "/etc/openvpn/private/server.key"
 x509_cert_file: "/etc/openvpn/certs/server.crt"
 x509_common_name: "{{ ansible_fqdn }}_OpenVPN_Server"
 dhparms_file: "/etc/openvpn/private/dh.pem"
+server_network: "10.8.0.0"
+server_netmask: "255.255.255.0"
diff --git a/roles/nfs-client/tasks/mountFileSystem.yml b/roles/nfs-client/tasks/mountFileSystem.yml
index 7944c079ce1786a48ca21514985f77e1043e8ed7..66da94c12ec13c774fb31784f62165ac457ec744 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 4821a0a95f38173d08926bd230a7cb27bc7087ae..17211aff0bab88c5d6d1ff05f2ed9046aea03f19 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
deleted file mode 100644
index bada393e107f6e35645d8d9ca5bcfde2af8bcab8..0000000000000000000000000000000000000000
--- a/roles/nfs-server/templates/exports.j2
+++ /dev/null
@@ -1 +0,0 @@
-{{ srcDir }}	{{ nfs_network }}(rw,sync,root_squash)
diff --git a/roles/nfs-server/vars/main.yml b/roles/nfs-server/vars/main.yml
deleted file mode 100644
index 1091b61454355f091358785c0275b100f518c9a6..0000000000000000000000000000000000000000
--- a/roles/nfs-server/vars/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-srcDir: '/mnt'
diff --git a/roles/syncExports/tasks/addExports.yml b/roles/syncExports/tasks/addExports.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fb08d1acbd9ca8c66ee1dea5522ea1cc1839e82c
--- /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 0000000000000000000000000000000000000000..087f43771a0a0b53c17afdae456a2dea4dd21958
--- /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 0000000000000000000000000000000000000000..2949f722693811f3a3253953917e92269f809fbb
--- /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 0000000000000000000000000000000000000000..f538c66e3b43190e071a396b38c5f72d6dbd5f71
--- /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
+