diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 684c75bbb5dc3c59daaad42975879a60c5f5c571..4598e0156f2e4e557d2604350c66014da57f7622 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -25,24 +25,34 @@ downloads:
     dest: calico/bin/calicoctl
     sha256: "{{ calico_checksum }}"
     url: "{{ calico_download_url }}"
+    owner: "root"
+    mode: "0755"
 
   - name: calico-plugin
     dest: calico/bin/calico
     sha256: "{{ calico_plugin_checksum }}"
     url: "{{ calico_plugin_download_url }}"
+    owner: "root"
+    mode: "0755"
 
   - name: etcd
     dest: "etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz"
     sha256: "{{ etcd_checksum }}"
     url: "{{ etcd_download_url }}"
     unarchive: true
+    owner: "etcd"
+    mode: "0755"
 
   - name: kubernetes-kubelet
     dest: kubernetes/bin/kubelet
     sha256: "{{kubelet_checksum}}"
     url: "{{ kube_download_url }}/kubelet"
+    owner: "kube"
+    mode: "0755"
 
   - name: kubernetes-kubectl
     dest: kubernetes/bin/kubectl
     sha256: "{{kubectl_checksum}}"
     url: "{{ kube_download_url }}/kubectl"
+    owner: "kube"
+    mode: "0755"
diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml
index 0d881acfcbad3d1d2f2ad5fa4a30ce7771719ff7..af1bc41246b133f0ab7b16495bae991dc8b403d0 100644
--- a/roles/download/tasks/main.yml
+++ b/roles/download/tasks/main.yml
@@ -1,4 +1,19 @@
 ---
+- name: Create system kube user
+  user:
+    name=kube
+    comment="Kubernetes user"
+    shell=/sbin/nologin
+    state=present
+    system=yes
+    groups={{ kube_cert_group }}
+
+- name: Create etcd user
+  user:
+    name: etcd
+    shell: /bin/nologin
+    home: /var/lib/etcd
+
 - name: Create dest directories
   file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes
   with_items: downloads
@@ -8,6 +23,8 @@
     url: "{{item.url}}"
     dest: "{{local_release_dir}}/{{item.dest}}"
     sha256sum: "{{item.sha256 | default(omit)}}"
+    owner: "{{ item.owner|default(omit) }}"
+    mode: "{{ item.mode|default(omit) }}"
   with_items: downloads
 
 - name: Extract archives
diff --git a/roles/etcd/tasks/install.yml b/roles/etcd/tasks/install.yml
index c19b26c9c8584a9248092efdf8daffd4d4193e64..679b98077b3f6964abf472de619bb723795da07f 100644
--- a/roles/etcd/tasks/install.yml
+++ b/roles/etcd/tasks/install.yml
@@ -1,16 +1,8 @@
 ---
-- name: INSTALL | Create etcd user
-  user: name=etcd shell=/bin/nologin home=/var/lib/etcd
-
 - name: INSTALL | Copy  etcd binaries
-  synchronize:
-     src: "{{ etcd_bin_dir }}/{{ item }}"
-     dest: "{{ bin_dir }}"
-     times: yes
-     archive: no
-     set_remote_user: false
-  delegate_to: "{{ inventory_hostname }}"
+  command: cp -pf "{{ etcd_bin_dir }}/{{ item }}" "{{ bin_dir }}"
   with_items:
     - etcdctl
     - etcd
+  changed_when: false
   notify: restart etcd
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index 7e941e42234d7d546bbbd9b06fa109634d8c6afe..3543ded9188a9b8748f7a234c88664116fc978fb 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -5,17 +5,9 @@
     dest: /etc/bash_completion.d/kubectl.sh
 
 - name: Install kubectl binary
-  synchronize:
-     src: "{{ local_release_dir }}/kubernetes/bin/kubectl"
-     dest: "{{ bin_dir }}/kubectl"
-     archive: no
-     checksum: yes
-     times: yes
-     set_remote_user: false
-  delegate_to: "{{  inventory_hostname  }}"
-
-- name: Perms kubectl binary
-  file: path={{ bin_dir }}/kubectl owner=kube mode=0755 state=file
+  command: cp -pf "{{ local_release_dir }}/kubernetes/bin/kubectl" "{{ bin_dir }}/kubectl"
+  changed_when: false
+  notify: restart kubelet
 
 - name: populate users for basic auth in API
   lineinfile:
@@ -46,8 +38,7 @@
   template:
     src: manifests/kube-apiserver.manifest.j2
     dest: "{{ kube_manifest_dir }}/kube-apisever.manifest"
-  notify:
-    - restart kubelet
+  notify: restart kubelet
 
 - meta: flush_handlers
 
diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml
index 847db5390fc5b429075b4999281959d8120e5c6c..9017003b28c83c3470add57f04fb987bf2322dbd 100644
--- a/roles/kubernetes/node/tasks/install.yml
+++ b/roles/kubernetes/node/tasks/install.yml
@@ -18,34 +18,16 @@
   notify: restart kubelet
 
 - name: install | Install kubelet binary
-  synchronize:
-     src: "{{ local_release_dir }}/kubernetes/bin/kubelet"
-     dest: "{{ bin_dir }}/kubelet"
-     times: yes
-     archive: no
-     set_remote_user: false
-  delegate_to: "{{  inventory_hostname  }}"
-  notify:
-    - restart kubelet
-
-- name: install | Perms kubelet binary
-  file: path={{ bin_dir }}/kubelet owner=kube mode=0755 state=file
+  command: cp -pf "{{ local_release_dir }}/kubernetes/bin/kubelet" "{{ bin_dir }}/kubelet"
+  changed_when: false
+  notify: restart kubelet
 
 - name: install | Calico-plugin | Directory
   file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/ state=directory
   when: kube_network_plugin == "calico"
 
 - name: install | Calico-plugin | Binary
-  synchronize:
-    src: "{{ local_release_dir }}/calico/bin/calico"
-    dest: "/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico"
-    times: yes
-    archive: no
-    set_remote_user: false
-  delegate_to: "{{  inventory_hostname  }}"
+  command: cp -pf "{{ local_release_dir }}/calico/bin/calico" "/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico"
   when: kube_network_plugin == "calico"
+  changed_when: false
   notify: restart kubelet
-
-- name: install | Perms calico plugin binary
-  file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico owner=kube mode=0755 state=file
-  when: kube_network_plugin == "calico"
diff --git a/roles/kubernetes/node/tasks/main.yml b/roles/kubernetes/node/tasks/main.yml
index 68d4f75795bed277982f630cdd444c6f808beb35..387f5bf72de1327baeac10ba064c9e93fe2090ec 100644
--- a/roles/kubernetes/node/tasks/main.yml
+++ b/roles/kubernetes/node/tasks/main.yml
@@ -12,15 +12,6 @@
 - name: certs | create system kube-cert groups
   group: name={{ kube_cert_group }} state=present system=yes
 
-- name: create system kube user
-  user:
-    name=kube
-    comment="Kubernetes user"
-    shell=/sbin/nologin
-    state=present
-    system=yes
-    groups={{ kube_cert_group }}
-
 - include: secrets.yml
   tags:
     - secrets
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index ef6578e379b516ff240951c82c8ac0a6d91ad9ff..a498e6445854f7c3284f1e40728e5e689b232e55 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -17,7 +17,7 @@
 
 - name: "Identify init system"
   shell: >
-    $(pgrep systemd > /dev/null && systemctl status network > /dev/null);
+    $(pgrep systemd > /dev/null && systemctl status network.target > /dev/null);
     if [ $? -eq 0 ] ; then
       echo systemd;
     else
diff --git a/roles/network_plugin/tasks/calico.yml b/roles/network_plugin/tasks/calico.yml
index c75a4b3a11bde661a20c9de263545ca5f600964a..b1dd11a37d756b83563e267b640131d218366917 100644
--- a/roles/network_plugin/tasks/calico.yml
+++ b/roles/network_plugin/tasks/calico.yml
@@ -1,12 +1,7 @@
 ---
 - name: Calico | Install calicoctl bin
-  synchronize:
-    src: "{{ local_release_dir }}/calico/bin/calicoctl"
-    dest: "{{ bin_dir }}/calicoctl"
-    archive: no
-    times: yes
-    set_remote_user: false
-  delegate_to: "{{  inventory_hostname  }}"
+  command: cp -pf "{{ local_release_dir }}/calico/bin/calicoctl" "{{ bin_dir }}/calicoctl"
+  changed_when: false
   notify: restart calico-node
 
 - name: Calico | install calicoctl