diff --git a/playbooks/roles/configure-targethosts/tasks/configure-network-Debian.yml b/playbooks/roles/configure-targethosts/tasks/configure-network-Debian.yml
new file mode 100644
index 0000000..aac29aa
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/configure-network-Debian.yml
@@ -0,0 +1,115 @@
+---
+# ============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: Configure modules
+  lineinfile:
+    dest: /etc/modules
+    state: present
+    create: yes
+    line: "8021q"
+
+- name: Add modules
+  modprobe:
+    name: 8021q
+    state: present
+
+# TODO: we need to look into how to configure with netplan for ubuntu 18
+# Today we perform a reboot after network related confiugration changes
+# to make sure the changes are persistent and prevent various issues.
+
+- name: Ensure interfaces.d folder is empty
+  file:
+    state: "{{ item }}"
+    path: "/etc/network/interfaces.d"
+  with_items:
+    - absent
+    - directory
+
+- name: Ensure /etc/interfaces can source additional files
+  copy:
+    content: |
+      auto lo
+      iface lo inet loopback
+      source /etc/network/interfaces.d/*.cfg
+    dest: "/etc/network/interfaces"
+
+- name: Compute mapping dict from mac address to device name
+  set_fact:
+    device_mac_dict: "{{ (device_mac_dict | default({})) | combine({item.macaddress: item.device}) }}"
+  loop: "{{ ansible_interfaces | map('regex_replace', '-', '_') | map('regex_replace', '^', 'ansible_') | map('extract', hostvars[inventory_hostname]) |  selectattr('macaddress','defined') | list }}"
+
+- name: Compute mapping dict from mac address to interface name (device name with/without VLAN info)
+  set_fact:
+    if_mac_dict: "{{ ( if_mac_dict | default({}) ) | combine({item.mac_address: (item.vlan == 'native') | ternary(device_mac_dict[item.mac_address], device_mac_dict[item.mac_address] + '.' + item.vlan) }) }}"
+  loop: "{{ node.interfaces }}"
+
+- name: Configure networking for host
+  template:
+    src: "{{ ansible_os_family }}.interface.j2"
+    dest: "/etc/network/interfaces.d/{{ item.value }}.cfg"
+  loop: "{{ if_mac_dict | dict2items }}"
+
+- name: Ensure systemd resolved.conf has the correct content
+  lineinfile:
+    path: /etc/systemd/resolved.conf
+    regexp: "^#?DNS=.*$"
+    line: "DNS={{ idf.net_config[engine.public_network | default('public')].dns | join(' ')}}"
+  when: idf.net_config[engine.public_network | default('public')].dns is defined
+
+- name: Proxy configuration for apt
+  block:
+  - name: Check that the /etc/apt/apt.conf exists
+    stat:
+      path: /etc/apt/apt.conf
+    register: stat_result
+
+  - name: Create /etc/apt/apt.conf, if it doesn't exist
+    file:
+      path: /etc/apt/apt.conf
+      state: touch
+    when: stat_result.stat.exists == False
+
+  - name: Add proxy setting to /etc/apt/apt.conf
+    lineinfile:
+      dest: /etc/apt/apt.conf
+      state: present
+      regexp: "^{{ item.name }}"
+      line: "{{ item.name }} {{ item.value }} "
+    with_items:
+      - {name: 'Acquire::http::Proxy', value: '"{{ idf.proxy_settings.http_proxy }}";' }
+      - {name: 'Acquire::https::Proxy', value: '"{{ idf.proxy_settings.https_proxy }}";' }
+  when:
+    idf.proxy_settings is defined
+
+- name: Reboot the machine
+  shell: "sleep 5 && reboot"
+  async: 1
+  poll: 0
+
+- name: Wait for host to come back to life
+  wait_for_connection:
+    connect_timeout: 10
+    sleep: 5
+    delay: 120
+    timeout: 300
+  register: result
+  until: result | succeeded
+  retries: 3
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/configure-network-RedHat.yml b/playbooks/roles/configure-targethosts/tasks/configure-network-RedHat.yml
new file mode 100644
index 0000000..600d5d6
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/configure-network-RedHat.yml
@@ -0,0 +1,80 @@
+---
+# ============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: Configure modules
+  lineinfile:
+    dest: /etc/modules
+    state: present
+    create: yes
+    line: "8021q"
+
+- name: Add modules
+  modprobe:
+    name: 8021q
+    state: present
+
+- name: Compute mapping dict from mac address to device name
+  set_fact:
+    device_mac_dict: "{{ (device_mac_dict | default({})) | combine({item.macaddress: item.device}) }}"
+  with_items:
+    - "{{ ansible_interfaces | map('regex_replace', '-', '_') | map('regex_replace', '^', 'ansible_') | map('extract', hostvars[inventory_hostname]) |  selectattr('macaddress','defined') | list }}"
+
+- name: Compute mapping dict from mac address to interface name (device name with/without VLAN info)
+  set_fact:
+    if_mac_dict: "{{ ( if_mac_dict | default({}) ) | combine({item.mac_address: (item.vlan == 'native') | ternary(device_mac_dict[item.mac_address], device_mac_dict[item.mac_address] + '.' + item.vlan) }) }}"
+  with_items:
+    - "{{ node.interfaces }}"
+
+- name: Configure networking for host
+  template:
+    src: "{{ ansible_os_family }}.interface.j2"
+    dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.value }}"
+  with_items:
+    - "{{ if_mac_dict | dict2items }}"
+
+- name: Proxy configuration for yum
+  block:
+  - name: Check that the /etc/yum.conf exists
+    stat:
+      path: /etc/yum.conf
+    register: stat_result
+
+  - name: Create /etc/yum.conf, if it doesn't exist
+    file:
+      path: /etc/yum.conf
+      state: touch
+    when: stat_result.stat.exists == False
+
+  - name: Add proxy setting to /etc/yum.conf
+    lineinfile:
+      dest: /etc/yum.conf
+      state: present
+      regexp: "^{{ item.name }}"
+      line: "{{ item.name }}={{ item.value }} "
+    with_items:
+      - {name: 'proxy', value: '"{{ idf.proxy_settings.http_proxy }}"' }
+  when:
+    idf.proxy_settings is defined
+
+- name: Restart network
+  service:
+    name: network
+    state: restarted
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/configure-network.yml b/playbooks/roles/configure-targethosts/tasks/configure-network.yml
new file mode 100644
index 0000000..13393c8
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/configure-network.yml
@@ -0,0 +1,62 @@
+---
+# ============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: Get node name from IDF for host "{{ inventory_hostname }}"
+  set_fact:
+    node_name: "{{ item.key }}"
+  with_dict: "{{ idf.kolla.hostnames }}"
+  when: item.value == inventory_hostname
+
+- name: Set facts for the node "{{ node_name }}"
+  set_fact:
+    node: "{{ nodes | selectattr('name', 'equalto', node_name) | first }}"
+
+- name: Ensure glean rules are removed
+  file:
+    path: "/etc/udev/rules.d/99-glean.rules"
+    state: absent
+
+- name: Add proxy settings to /etc/environment on localhost
+  lineinfile:
+    dest: /etc/environment
+    state: present
+    regexp: "^no_proxy"
+    line: "no_proxy={{ idf.proxy_settings.no_proxy }}"
+  delegate_to: localhost
+  become: true
+  when:
+    idf.proxy_settings is defined
+
+- name: Add proxy settings to /etc/environment on target node
+  lineinfile:
+    dest: /etc/environment
+    state: present
+    regexp: "^{{ item.name }}"
+    line: "{{ item.name }}={{ item.value }}"
+  with_items:
+    - {name: 'http_proxy', value: '{{ idf.proxy_settings.http_proxy }}' }
+    - {name: 'https_proxy', value: '{{ idf.proxy_settings.https_proxy }}' }
+    - {name: 'no_proxy', value: '{{ idf.proxy_settings.no_proxy }}' }
+  when:
+    idf.proxy_settings is defined
+
+- name: Configure networking for {{ ansible_os_family }}
+  include_tasks: "configure-network-{{ ansible_os_family }}.yml"
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/create-swap.yml b/playbooks/roles/configure-targethosts/tasks/create-swap.yml
new file mode 100644
index 0000000..b4a2352
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/create-swap.yml
@@ -0,0 +1,57 @@
+---
+# ============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=========================================================
+# TODO: Sometimes mariadb gets stuck in a restart loop for lack of main memory,
+# using a swap file seems to solve the problem.
+
+- name: Check for swap file
+  stat:
+    path: /swapfile
+  register: swap
+
+- block:
+  - name: Create swap file
+    command: |
+      fallocate -l 2048M /swapfile
+
+  - name: Set swap file permissions
+    file:
+      path: /swapfile
+      state: "file"
+      owner: "root"
+      group: "root"
+      mode: "0600"
+
+  - name: Initialize swap file
+    command: mkswap /swapfile
+
+  - name: Enable swap file
+    command: swapon /swapfile
+
+  - name: Manage swap file in /etc/fstab
+    mount:
+      src: /swapfile
+      name: "none"
+      fstype: "swap"
+      opts: "sw,nofail"
+      dump: "0"
+      passno: "0"
+      state: present
+  when: swap.stat.exists == False
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/install-packages-Debian.yml b/playbooks/roles/configure-targethosts/tasks/install-packages-Debian.yml
new file mode 100644
index 0000000..9abd870
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/install-packages-Debian.yml
@@ -0,0 +1,34 @@
+---
+# ============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
+    update_cache: true
+  with_items:
+    - "apt-transport-https"
+    - "ca-certificates"
+    - "curl"
+    - "gnupg-agent"
+    - "software-properties-common"
+    - "chrony"
+    - "dbus"
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/install-packages-RedHat.yml b/playbooks/roles/configure-targethosts/tasks/install-packages-RedHat.yml
new file mode 100644
index 0000000..5477ad1
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/install-packages-RedHat.yml
@@ -0,0 +1,31 @@
+---
+# ============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
+  action: >
+    {{ ansible_pkg_mgr }} name={{ item }} state=present update_cache=yes
+  with_items:
+    - "yum-utils"
+    - "device-mapper-persistent-data"
+    - "lvm2"
+    - "ca-certificates"
+    - "curl"
+    - "chrony"
+    - "dbus"
+
+# 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..2ea2322
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/install-packages.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=========================================================
+
+- name: Install packages on {{ ansible_os_family }}
+  include_tasks: "install-packages-{{ ansible_os_family }}.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
new file mode 100644
index 0000000..b573473
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/main.yml
@@ -0,0 +1,25 @@
+---
+# ============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=========================================================
+
+- include: configure-network.yml
+- include: install-packages.yml
+- include: sync-time.yml
+- include: create-swap.yml
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/tasks/sync-time.yml b/playbooks/roles/configure-targethosts/tasks/sync-time.yml
new file mode 100644
index 0000000..1c96d12
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/tasks/sync-time.yml
@@ -0,0 +1,59 @@
+---
+# ============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: Add the OS specific variables
+  include_vars: '{{ ansible_os_family }}.yml'
+
+- name: Remove NTP if installed
+  action: >
+    {{ ansible_pkg_mgr }} name={{ item }} state=absent update_cache=yes
+  with_items:
+    - "ntp"
+
+- name: Install Chrony
+  action: >
+    {{ ansible_pkg_mgr }} name={{ item }} state=present update_cache=yes
+  with_items:
+    - "chrony"
+
+- name: Copy the chrony.conf template file
+  template:
+    src: "chrony.conf.j2"
+    dest: "{{ chrony_config_location }}"
+    owner: "root"
+    group: "root"
+    mode: "0755"
+  become: true
+  when: idf.ntp_servers is defined
+
+- name: Restart chrony
+  service:
+    name: "{{ chrony_service_name }}"
+    state: "restarted"
+  become: true
+
+
+- name: "NTP should be synchronized"
+  shell: timedatectl  | grep 'synchronized'
+  register: synchronized
+  changed_when: false
+  until: "'yes' in synchronized.stdout"
+  retries: 300
+  delay: 2
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/templates/Debian.interface.j2 b/playbooks/roles/configure-targethosts/templates/Debian.interface.j2
new file mode 100644
index 0000000..aea86c4
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/templates/Debian.interface.j2
@@ -0,0 +1,23 @@
+{%- set macaddress = item.key -%}
+{%- set device = item.value -%}
+{%- for selected_net_name, selected_net in idf.net_config.iteritems() if node.interfaces[selected_net.interface].mac_address == macaddress -%}
+{%- set selected_inf = node.interfaces[selected_net.interface] -%}
+
+auto {{ device }}
+{% if selected_inf.address == "dhcp" %}
+iface {{ device }} inet dhcp
+{% if selected_net.gateway is defined %}
+up route add default gateway {{ selected_net.gateway | ipaddr('address') }}
+{% endif %}
+{% elif selected_inf.address == "manual" %}
+iface {{ device }} inet manual
+{% else %}
+iface {{ device }} inet static
+address {{ selected_inf.address | ipaddr('address') }}
+netmask {{ (selected_net.network + "/" + (selected_net.mask | string)) | ipaddr('netmask') }}
+{% if selected_net.gateway is defined %}
+gateway {{ selected_net.gateway | ipaddr('address') }}
+{% endif %}
+{% endif %}
+
+{%- endfor -%}
\ No newline at end of file
diff --git a/playbooks/roles/configure-targethosts/templates/RedHat.interface.j2 b/playbooks/roles/configure-targethosts/templates/RedHat.interface.j2
new file mode 100644
index 0000000..a2f7f0e
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/templates/RedHat.interface.j2
@@ -0,0 +1,25 @@
+{%- set macaddress = item.key -%}
+{%- set device = item.value -%}
+{%- for selected_net_name, selected_net in idf.net_config.iteritems() if node.interfaces[selected_net.interface].mac_address == macaddress -%}
+{%- set selected_inf = node.interfaces[selected_net.interface] -%}
+TYPE=Ethernet
+DEVICE={{ device }}
+ONBOOT=yes
+HWADDR={{ macaddress }}
+{% if selected_inf.address == "dhcp" %}
+BOOTPROTO=dhcp
+{% elif selected_inf.address != "manual" %}
+BOOTPROTO=none
+IPADDR={{ selected_inf.address | ipaddr('address') }}
+NETMASK={{ (selected_net.network + "/" + (selected_net.mask | string)) | ipaddr('netmask') }}
+{% endif %}
+{% if selected_net.gateway is defined %}
+GATEWAY={{ selected_net.gateway | ipaddr('address') }}
+{% endif %}
+{% if selected_net.dns is defined %}
+{% for dns in selected_net.dns %}
+DNS{{ loop.index0 }}={{ dns }}
+{% endfor %}
+{% endif %}
+
+{%- endfor -%}
diff --git a/playbooks/roles/configure-targethosts/templates/chrony.conf.j2 b/playbooks/roles/configure-targethosts/templates/chrony.conf.j2
new file mode 100644
index 0000000..de6b840
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/templates/chrony.conf.j2
@@ -0,0 +1,41 @@
+# List of NTP servers to use
+
+{% for item in idf.ntp_servers %}
+{%   if item['options'] is not defined %}
+server {{ item['server'] }}
+{%   elif item['options'] is defined %}
+server {{ item['server'] }}{% for opt in item['options'] %} {{ opt['option'] }}{% if opt['val'] is defined %} {{ opt['val'] }}{% endif %}{% endfor %}
+
+{%   endif %}
+
+{% endfor %}
+
+# Ignore stratum in source selection.
+stratumweight 0
+
+# Specify the key used as password for chronyc.
+commandkey 1
+
+# Record the rate at which the system clock gains/losses time.
+driftfile {{ chrony_config_driftfile }}
+
+# In first three updates step the system clock instead of slew
+# if the adjustment is larger than 10 seconds.
+makestep 10 3
+
+# Enable kernel RTC synchronization.
+rtcsync
+
+# Listen for commands only on localhost.
+bindcmdaddress 127.0.0.1
+bindcmdaddress ::1
+
+keyfile {{ chrony_config_keyfile }}
+
+# Generate command key if missing.
+generatecommandkey
+
+logchange 0.5
+
+logdir {{ chrony_config_logdir }}
+
diff --git a/playbooks/roles/configure-targethosts/vars/Debian.yml b/playbooks/roles/configure-targethosts/vars/Debian.yml
new file mode 100644
index 0000000..fa38673
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/vars/Debian.yml
@@ -0,0 +1,25 @@
+---
+# ============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=========================================================
+chrony_service_name: chrony
+chrony_config_location: /etc/chrony/chrony.conf
+chrony_config_driftfile: /var/lib/chrony/chrony.drift
+chrony_config_keyfile: /etc/chrony/chrony.keys
+chrony_config_logdir: /var/log/chrony
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/vars/RedHat.yml b/playbooks/roles/configure-targethosts/vars/RedHat.yml
new file mode 100644
index 0000000..426900b
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/vars/RedHat.yml
@@ -0,0 +1,25 @@
+---
+# ============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=========================================================
+chrony_service_name: chronyd
+chrony_config_location: /etc/chrony.conf
+chrony_config_driftfile: /var/lib/chrony/drift
+chrony_config_keyfile: /etc/chrony.keys
+chrony_config_logdir: /var/log/chrony
+
+# vim: set ts=2 sw=2 expandtab:
diff --git a/playbooks/roles/configure-targethosts/vars/Suse.yml b/playbooks/roles/configure-targethosts/vars/Suse.yml
new file mode 100644
index 0000000..426900b
--- /dev/null
+++ b/playbooks/roles/configure-targethosts/vars/Suse.yml
@@ -0,0 +1,25 @@
+---
+# ============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=========================================================
+chrony_service_name: chronyd
+chrony_config_location: /etc/chrony.conf
+chrony_config_driftfile: /var/lib/chrony/drift
+chrony_config_keyfile: /etc/chrony.keys
+chrony_config_logdir: /var/log/chrony
+
+# vim: set ts=2 sw=2 expandtab:
