Fix nfs role issues based on molecule testing

Based on Molecule testing fix following issues on
nfs role.

 - enable nfs services (previously only started)
 - create handler for exportfs to deal idempotency
 - add all kubernetes nodes to exports as it was dependent on ansible inventory order wheather correct hosts was on the list
 - add inventory_hostname as default host incase ansible_host variable not defined.

Issue-ID: OOM-1756

Change-Id: Ib93e9d2a9cf49003d04dd5f890294eda1eb966ff
Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
diff --git a/ansible/roles/nfs/handlers/main.yml b/ansible/roles/nfs/handlers/main.yml
new file mode 100644
index 0000000..4b8deae
--- /dev/null
+++ b/ansible/roles/nfs/handlers/main.yml
@@ -0,0 +1,3 @@
+---
+- name: reload nfs
+  command: exportfs -ra
diff --git a/ansible/roles/nfs/tasks/main.yml b/ansible/roles/nfs/tasks/main.yml
index aca1771..e7580b6 100644
--- a/ansible/roles/nfs/tasks/main.yml
+++ b/ansible/roles/nfs/tasks/main.yml
@@ -9,7 +9,7 @@
   package:
     name: "{{ item }}"
     state: present
-  with_items: "{{ nfs_packages[ansible_os_family] }}"
+  loop: "{{ nfs_packages[ansible_os_family] }}"
 
 - name: Setup nfs server
   block:
@@ -17,22 +17,25 @@
       systemd:
         name: "{{ item }}"
         state: started
-      with_items: "{{ nfs_services[ansible_os_family] }}"
+        enabled: true
+      loop: "{{ nfs_services[ansible_os_family] }}"
 
     - name: Add hosts to exports
       template:
         src: exports.j2
         dest: /etc/exports
-
-    - name: Export nfs
-      command: exportfs -ar
+      notify:
+        - reload nfs
   when:
     - "'nfs-server' in group_names"
 
+- name: Force notified handlers to run at this point
+  meta: flush_handlers
+
 - name: Mount dockerdata-nfs
   mount:
     path: "{{ nfs_mount_path }}"
-    src: "{{ hostvars[groups['nfs-server'].0].ansible_host }}:{{ nfs_mount_path }}"
+    src: "{{ hostvars[groups['nfs-server'].0].ansible_host | default(hostvars[groups['nfs-server'].0].inventory_hostname) }}:{{ nfs_mount_path }}"
     fstype: nfs
     state: mounted
   when:
diff --git a/ansible/roles/nfs/templates/exports.j2 b/ansible/roles/nfs/templates/exports.j2
index 1f6956c..c605d9b 100644
--- a/ansible/roles/nfs/templates/exports.j2
+++ b/ansible/roles/nfs/templates/exports.j2
@@ -1,3 +1,3 @@
-{% for host in groups.kubernetes[1:] -%}
-    {{ nfs_mount_path }}  {{ hostvars[host].ansible_host }}(rw,sync,no_root_squash,no_subtree_check)
+{% for host in groups.kubernetes -%}
+    {{ nfs_mount_path }}  {{ hostvars[host].ansible_host | default(hostvars[host].inventory_hostname) }}(rw,sync,no_root_squash,no_subtree_check)
 {% endfor %}