Install packages on target hosts

Please note that there is a workaround in place to avoid kubespray
bug. See tasks/install-packages-ubuntu16.yml and defaults/main.yml
for details.

Change-Id: Icbf5bf69f06b4cfaea443bf84a73f2df54495a9e
diff --git a/playbooks/roles/configure-targethosts/defaults/main.yml b/playbooks/roles/configure-targethosts/defaults/main.yml
new file mode 100644
index 0000000..ba124e6
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/defaults/main.yml
@@ -0,0 +1,23 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+# we need to pin docker version in order to avoid hitting the kubespray bug:
+# https://github.com/kubernetes-sigs/kubespray/issues/4300
+docker_ce_version: "{{ lookup('env', 'DOCKER_CE_VERSION') | default('18.06.2~ce~3-0~ubuntu', true) }}"
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/install-packages-ubuntu16.yml b/playbooks/roles/configure-targethosts/tasks/install-packages-ubuntu16.yml
new file mode 100644
index 0000000..4316f86
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/install-packages-ubuntu16.yml
@@ -0,0 +1,51 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+- name: Install packages
+  apt:
+    name: "{{ item }}"
+    state: present
+  with_items:
+    - "apt-transport-https"
+    - "ca-certificates"
+    - "curl"
+    - "gnupg-agent"
+    - "software-properties-common"
+    - "chrony"
+    - "dbus"
+
+# docker stuff here is put in place temporarily in order to
+# avoid hitting the kubespray bug:
+# https://github.com/kubernetes-sigs/kubespray/issues/4300
+- name: Add docker apt repository
+  apt_repository:
+    repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename}} stable"
+    state: present
+
+- name: Install docker version {{ docker_ce_version }}
+  apt:
+    name: "{{ item }}"
+    state: present
+    update_cache: yes
+    allow_unauthenticated: yes
+  with_items:
+    - "docker-ce={{ docker_ce_version }}"
+    - "containerd.io"
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/install-packages.yml b/playbooks/roles/configure-targethosts/tasks/install-packages.yml
new file mode 100644
index 0000000..68b4b1a
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/install-packages.yml
@@ -0,0 +1,27 @@
+---
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+- name: Set distribution
+  set_fact:
+    distribution: "{{ ansible_distribution | lower }}{{ ansible_distribution_major_version }}"
+
+- name: Install packages on {{ distribution }}
+  include_tasks: "install-packages-{{ distribution }}.yml"
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/main.yml b/playbooks/roles/configure-targethosts/tasks/main.yml
index c90958c..30808f5 100644
--- a/playbooks/roles/configure-targethosts/tasks/main.yml
+++ b/playbooks/roles/configure-targethosts/tasks/main.yml
@@ -18,5 +18,15 @@
 # ============LICENSE_END=========================================================
 
 - include: configure-network.yml
+- include: install-packages.yml
+
+# docker stuff here is put in place temporarily in order to
+# avoid hitting the kubespray bug:
+# https://github.com/kubernetes-sigs/kubespray/issues/4300
+- name: Enable and start docker service
+  service:
+    name: docker
+    state: restarted
+    enabled: yes
 
 # vim: set ts=2 sw=2 expandtab: