diff --git a/roles/lustre-client/tasks/main.yml b/roles/lustre-client/tasks/main.yml
index 0a03f495e5a84658e4fee31a93884f6d3d6bd5b2..0b2e2be241a767155c0c515dd2324b9391c9ec64 100644
--- a/roles/lustre-client/tasks/main.yml
+++ b/roles/lustre-client/tasks/main.yml
@@ -1,22 +1,26 @@
 ---
-- include_vars: "{{ ansible_distribution }}_{{ ansible_distirubtion_major_version }}.yaml"
-
-lustre_pkgs: 
-  - lustre-client-modules-2.7.0-3.10.0_229.14.1.el7.x86_64.x86_64.rpm
-  - lustre-client-2.7.0-3.10.0_229.14.1.el7.x86_64.x86_64.rpm
+- include_vars: "{{ ansible_distribution }}_{{ ansible_distribution_major_version }}.yaml"
 
 - name: copy rpms
-  copy: dest=/tmp/ src={{ item }}
+  copy: dest=/tmp/ src=lustre-install/{{ item }}
   with_items:
-    {{ lustre_pkgs }}
+    "{{ lustre_pkgs }}"
+
+#- name: install rpms
+#  yum: name="/tmp/{{ item }}"
+#  sudo: true
+#  with_items: "{{ lustre_pkgs }}"
+
+- name: install rpms
+  yum: name=/tmp/lustre-client-modules-2.7.0-3.10.0_229.14.1.el7.x86_64.x86_64.rpm
+  sudo: true
 
 - name: install rpms
-  yum: name= /tmp/{{ item }}
+  yum: name=/tmp/lustre-client-2.7.0-3.10.0_229.14.1.el7.x86_64.x86_64.rpm
   sudo: true
-  with_tiems:
-    {{ lustre_pkgs }}
+
   
 - name: "Mount lustre filesystems"
-  mount: name="{{ item.mntpt }}" src= "{{ item.servers }}"/"{{ item.src }}" state="mounted" fstype="lustre" opts="_netdev,flock 0 0" 
+  mount: name="{{ item.mntpt }}" src="{{ item.servers }}"/"{{ item.src }}" state="mounted" fstype="lustre" opts="_netdev,flock" 
   sudo: true
-  with_tiems: {{ mntlist }}
+  with_items: "{{ mntlist }}"
diff --git a/roles/mellanox_drivers/tasks/main.yml b/roles/mellanox_drivers/tasks/main.yml
index a25adf0c243a8ed643f70471d9b3345d84fa9d7a..72cdbce129e9de3eb95397791ba96ca4422a8b01 100644
--- a/roles/mellanox_drivers/tasks/main.yml
+++ b/roles/mellanox_drivers/tasks/main.yml
@@ -1,13 +1,32 @@
 ---
+
+- name: yum install dependencies
+  yum:  name=perl,pciutils,gtk2,atk,cairo,gcc-gfortran,libxml2-python,tcsh,libnl,lsof,tcl,tk
+  sudo: true
+  ignore_errors: true
+  
+- name: yum update to upgrade kernel
+  shell: "yum update -y"
+  sudo: true
+  when: ansible_os_family=="RedHat" and ansible_distribution_major_version == "7"
+  
+#
+# A REBOOT IS NEEDED AFTER a KERNEL UPDATE
+#
 - name: restart machine
-  command: shutdown -r now "Ansible updates triggered"
-  async: 0
+  shell: sleep 5; sudo shutdown -r now "Ansible updates triggered"
+  async: 2
   poll: 0
   ignore_errors: true
+  sudo: true
 
 - name: waiting for server to come back
-  local_action: wait_for host={{ inventory_hostname }}
-                state=started
+  #local_action: wait_for host={{ ansible_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  sudo: false
+
+- name: waiting for server to come back number 2
+  local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH
   sudo: false
 
 - name: test for existing installation of drivers
@@ -17,25 +36,41 @@
   ignore_errors: true
 
 - name: copy driver source
-  unarchive: copy=yes src=MLNX_OFED_LINUX-3.1-1.0.3-rhel7.1-x86_64-ext.tgz dest=/tmp/MLNX_OFED_LINUX-3.1-1.0.3-rhel7.1-x86_64-ext
+  unarchive: copy=yes src=files/MLNX_OFED_LINUX-3.1-1.0.3-rhel7.1-x86_64-ext.tgz dest=/tmp
   sudo: true
   when: drivers_installed|failed and ansible_os_family=="RedHat" and ansible_distribution_major_version == "7"
 
 - name: install drivers
-  command: ./mlnxofedinstall -q
+  shell: ./mlnxofedinstall -q
   args:
-    path: /tmp/MLNX_OFED_LINUX-3.1-1.0.3-rhel7.1-x86_64-ext
+    chdir: /tmp/MLNX_OFED_LINUX-3.1-1.0.3-rhel7.1-x86_64-ext
   sudo: true
-  when: drivers_installed failed and ansible_distribution_major_version == "7"
+  when: drivers_installed|failed and ansible_distribution_major_version == "7"
 
+#
+# A REBOOT IS NEEDED AFTER SUCCESSFUL INSTALL
+#
+- name: restart machine
+  command: sleep 5; sudo shutdown -r now "Ansible updates triggered"
+  async: 2
+  poll: 0
+  ignore_errors: true
+  sudo: true
+
+- name: waiting for server to come back
+  local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  sudo: false
+
+- name: waiting for server to come back 2
+  local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  sudo: false
 
 - name: get IP address
-  command: ./scripts/map_ib_ip.pl {{ inventory_hostname }}
-  local_action: true
+  local_action: command ./scripts/map_ib_ip.pl {{ inventory_hostname }}
   register: ip_address
   
 - name: template IP address
-  template: dest=/etc/sysconfig/network-scripts/ifcfg-ens6 source=ifcfg-ens6.j2 owner=root group=root
+  template: dest=/etc/sysconfig/network-scripts/ifcfg-ens6 src=ifcfg-ens6.j2 owner=root group=root
   sudo: true
   when: ansible_distribution_major_version == "7"