diff --git a/roles/adduser/tasks/main.yml b/roles/adduser/tasks/main.yml
index 94e6503e741ce6af9490ad48432880ee0628e9ae..58e5ce49e506607a56044337d6bef649c910e12b 100644
--- a/roles/adduser/tasks/main.yml
+++ b/roles/adduser/tasks/main.yml
@@ -15,7 +15,7 @@
 
 - name: User | Create User Group
   group: name={{item.group|default(item.name)}} system={{item.system|default(omit)}}
-  with_items: addusers
+  with_items: "{{ addusers }}"
 
 - name: User | Create User
   user:
@@ -25,4 +25,4 @@
     home: "{{item.home|default(omit)}}"
     name: "{{item.name}}"
     system: "{{item.system|default(omit)}}"
-  with_items: addusers
+  with_items: "{{ addusers }}"
diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml
index 020ef3b86f11271a16d65984f5f51b237ec06ef3..b27947f244eb81927841ef66a41f1ae1155eeeb7 100644
--- a/roles/dnsmasq/tasks/main.yml
+++ b/roles/dnsmasq/tasks/main.yml
@@ -47,7 +47,7 @@
     resource: "{{item.item.type}}"
     filename: /etc/kubernetes/{{item.item.file}}
     state: "{{item.changed | ternary('latest','present') }}"
-  with_items: manifests.results
+  with_items: "{{ manifests.results }}"
   when: inventory_hostname == groups['kube-master'][0]
 
 - name: Check for dnsmasq port (pulling image and running container)
diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml
index c26f37783e0f9a66ed6ffc2b0d50e145171d3325..b47c9d302afb7ce4cc0c2deb335bea9aed1d7f1f 100644
--- a/roles/docker/tasks/main.yml
+++ b/roles/docker/tasks/main.yml
@@ -28,14 +28,14 @@
     id: "{{item}}"
     keyserver: "{{docker_repo_key_info.keyserver}}"
     state: present
-  with_items: docker_repo_key_info.repo_keys
+  with_items: "{{ docker_repo_key_info.repo_keys }}"
 
 - name: ensure docker repository is enabled
   action: "{{ docker_repo_info.pkg_repo }}"
   args:
     repo: "{{item}}"
     state: present
-  with_items: docker_repo_info.repos
+  with_items: "{{ docker_repo_info.repos }}"
   when: docker_repo_info.repos|length > 0
 
 - name: ensure docker packages are installed
@@ -43,7 +43,7 @@
   args:
     pkg: "{{item}}"
     state: present
-  with_items: docker_package_info.pkgs
+  with_items: "{{ docker_package_info.pkgs }}"
   when: docker_package_info.pkgs|length > 0
 
 - name: Centos needs xfs storage type for devicemapper if used
diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml
index 0942115e4f5060cfecf750d6a3087f50382e4e81..746be939ec7a40ccc8abfb264c5576676c3d8946 100644
--- a/roles/download/tasks/main.yml
+++ b/roles/download/tasks/main.yml
@@ -1,7 +1,7 @@
 ---
 - name: Create dest directories
   file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes
-  with_items: downloads
+  with_items: "{{ downloads }}"
 
 - name: Download items
   get_url:
@@ -10,7 +10,7 @@
     sha256sum: "{{item.sha256 | default(omit)}}"
     owner: "{{ item.owner|default(omit) }}"
     mode: "{{ item.mode|default(omit) }}"
-  with_items: downloads
+  with_items: "{{ downloads }}"
 
 - name: Extract archives
   unarchive:
@@ -20,7 +20,7 @@
     mode: "{{ item.mode|default(omit) }}"
     copy: no
   when: "{{item.unarchive is defined and item.unarchive == True}}"
-  with_items: downloads
+  with_items: "{{ downloads }}"
 
 - name: Fix permissions
   file:
@@ -29,4 +29,4 @@
     owner: "{{ item.owner|default(omit) }}"
     mode: "{{ item.mode|default(omit) }}"
   when: "{{item.unarchive is not defined or item.unarchive == False}}"
-  with_items: downloads
+  with_items: "{{ downloads }}"
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index 5124e152b326a2d6c37142b416c7180ce41bb7dd..109ada3ea5dcecbd7da3d1351ca753d47e9fa25b 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -45,7 +45,7 @@
 - meta: flush_handlers
 
 - include: start.yml
-  with_items: groups['kube-master']
+  with_items: "{{ groups['kube-master'] }}"
   when: "{{ hostvars[item].inventory_hostname == inventory_hostname }}"
 
 # Create kube-system namespace
diff --git a/roles/kubernetes/preinstall/tasks/etchosts.yml b/roles/kubernetes/preinstall/tasks/etchosts.yml
index e28eecc56a5155c341907c5bdac6fbab1906797a..dd8562b8cd610189d37bacff33439af090a5847d 100644
--- a/roles/kubernetes/preinstall/tasks/etchosts.yml
+++ b/roles/kubernetes/preinstall/tasks/etchosts.yml
@@ -8,7 +8,7 @@
     create: yes
     backup: yes
   when: hostvars[item].ansible_default_ipv4.address is defined
-  with_items: groups['all']
+  with_items: "{{ groups['all'] }}"
 
 - name: Hosts | populate kubernetes loadbalancer address into hosts file
   lineinfile:
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index c81cf47f1db909c3806e5e32000991bbcaac8ed9..d90570ca56405710a21e7f4670218e801e16b488 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -64,18 +64,13 @@
     - "/opt/cni/bin"
   when: kube_network_plugin == "calico"
 
-- name: Update package management cache (APT)
-  apt: update_cache=yes
-  when: ansible_pkg_mgr == 'apt'
-
 - name: Update package management cache (YUM)
   yum: update_cache=yes name='*'
   when: ansible_pkg_mgr == 'yum'
 
-- name: Install python-apt for Debian distribs
-  command: apt-get install -y python-apt
+- name: Install latest version of python-apt for Debian distribs
+  apt: name=python-apt state=latest update_cache=yes cache_valid_time=3600
   when: ansible_os_family == "Debian"
-  changed_when: False
 
 - name: Install python-dnf for latest RedHat versions
   command: dnf install -y python-dnf yum
diff --git a/roles/kubernetes/secrets/tasks/gen_certs.yml b/roles/kubernetes/secrets/tasks/gen_certs.yml
index e2b3eaefa69e845b27abbbc3755c235c9748166d..e4dd691967dfad77270fe2432694472aea2a65fa 100644
--- a/roles/kubernetes/secrets/tasks/gen_certs.yml
+++ b/roles/kubernetes/secrets/tasks/gen_certs.yml
@@ -48,4 +48,4 @@
   file:
     path: "{{ item }}"
     mode: 0600
-  with_items: keyfiles.stdout_lines
+  with_items: "{{ keyfiles.stdout_lines }}"