diff --git a/roles/nfs-client/tasks/main.yml b/roles/nfs-client/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e1512485a89d2c747db556af2b3495e626c06b5c
--- /dev/null
+++ b/roles/nfs-client/tasks/main.yml
@@ -0,0 +1,2 @@
+---
+- include: mountFileSystem.yml
diff --git a/roles/nfs-client/tasks/mountFileSystem.yml b/roles/nfs-client/tasks/mountFileSystem.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1b9d5d2b8c121c3d039d0df5135c9b6fd9053d6b
--- /dev/null
+++ b/roles/nfs-client/tasks/mountFileSystem.yml
@@ -0,0 +1,8 @@
+--- 
+- 
+  mount: "name={{ item.0 }} src={{ nfs_server }}:{{ item.1 }} fstype=nfs opts=vers=3,noatime,rsize=16384,wsize=16384,hard,intr,tcp,nolock state=mounted"
+  name: "Mounting NFS mounts"
+  with_together: 
+    - destDir
+    - srcDir
+
diff --git a/roles/nfs-client/vars/main.yml b/roles/nfs-client/vars/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2a7137f29478b7cdbedecceda8e1ccfaa2e57565
--- /dev/null
+++ b/roles/nfs-client/vars/main.yml
@@ -0,0 +1,3 @@
+---
+srcDir: ['/mnt']
+destDir: ['/mnt/test-nfs']
diff --git a/roles/nfs-common/handlers/main.yml b/roles/nfs-common/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7b77dc761daa5d64900882953560e05d713c3c2e
--- /dev/null
+++ b/roles/nfs-common/handlers/main.yml
@@ -0,0 +1,4 @@
+--- 
+- 
+  name: "Run rpcbind service"
+  service: "name=rpcbind state=started"
diff --git a/roles/nfs-common/tasks/main.yml b/roles/nfs-common/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c7e34d16ebe7f846fb5433b5c9dfacba4794c9a8
--- /dev/null
+++ b/roles/nfs-common/tasks/main.yml
@@ -0,0 +1,2 @@
+---
+- include: yumPackages.yml
diff --git a/roles/nfs-common/tasks/yumPackages.yml b/roles/nfs-common/tasks/yumPackages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b0bc93f6bf9808cf1269d8d2f9ddbc5ed6eb27c0
--- /dev/null
+++ b/roles/nfs-common/tasks/yumPackages.yml
@@ -0,0 +1,7 @@
+--- 
+- 
+  name: "Install nfs-utils"
+  with_items: 
+    - bind-utils
+    - nfs-utils
+  yum: "name={{ item }} state=latest"
diff --git a/roles/nfs-server/tasks/main.yml b/roles/nfs-server/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e6a2c4aac840402f65ed37fd10328b25e5865bd6
--- /dev/null
+++ b/roles/nfs-server/tasks/main.yml
@@ -0,0 +1,2 @@
+---
+- include: startServer.yml
diff --git a/roles/nfs-server/tasks/startServer.yml b/roles/nfs-server/tasks/startServer.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4821a0a95f38173d08926bd230a7cb27bc7087ae
--- /dev/null
+++ b/roles/nfs-server/tasks/startServer.yml
@@ -0,0 +1,10 @@
+--- 
+- 
+  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
new file mode 100644
index 0000000000000000000000000000000000000000..2d30f92a882e405af04428fe6f983e9184e9c099
--- /dev/null
+++ b/roles/nfs-server/templates/exports.j2
@@ -0,0 +1 @@
+/mnt	{{ nfs_network }}(rw,sync,root_squash)
diff --git a/roles/nfs-server/templates/iptables.j2 b/roles/nfs-server/templates/iptables.j2
new file mode 100644
index 0000000000000000000000000000000000000000..0ba375f55c86d93791f64d7a006bdf7981df06ab
--- /dev/null
+++ b/roles/nfs-server/templates/iptables.j2
@@ -0,0 +1,13 @@
+*filter
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [3876421698:11303590692860]
+:OpenVPN-INPUT - [0:0]
+-A INPUT -i tun0 -j OpenVPN-INPUT
+-A FORWARD -j OpenVPN-INPUT
+
+# Start adding the Rules
+#-A OpenVPN-INPUT -p tcp -m tcp -i tun0 -s {{ nfs_network }} -j ACCEPT
+
+-P INPUT -i tun0 -j ACCEPT
+COMMIT