diff --git a/baremetal/files/apcupsd/killpower/portal b/baremetal/files/apcupsd/killpower/portal
new file mode 100755
index 0000000000000000000000000000000000000000..c9f23e0f92fb29b4cb1affe65753140413f155b6
--- /dev/null
+++ b/baremetal/files/apcupsd/killpower/portal
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# This shell script if placed in /etc/apcupsd
+# will be called by /etc/apcupsd/apccontrol before
+# apcupsd kills the power in the UPS. You probably
+# need to edit this to mount read-only /usr and /var,
+# otherwise apcupsd will not run.
+
+wall "portal shutdown imminent. processes using ENCRYPTED will be killed in 10 seconds."
+service subsonic stop &
+service samba stop &
+kill -TERM `lsof -R -t /ENCRYPTED` || true
+sleep 10
+pkill -9 java
+kill -9 `lsof -R -t /ENCRYPTED` || true
+zpool export ENCRYPTED
+
+exit 0
diff --git a/baremetal/files/apcupsd/killpower/rumo b/baremetal/files/apcupsd/killpower/rumo
new file mode 100755
index 0000000000000000000000000000000000000000..a521a02a72f3d73c295f39f824235b681323e046
--- /dev/null
+++ b/baremetal/files/apcupsd/killpower/rumo
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# This shell script if placed in /etc/apcupsd
+# will be called by /etc/apcupsd/apccontrol before
+# apcupsd kills the power in the UPS. You probably
+# need to edit this to mount read-only /usr and /var,
+# otherwise apcupsd will not run.
+
+wall "rumo shutdown imminent. storage services will be terminated within 20 seconds."
+service nfs-kernel-server stop
+service nfs-common stop
+sleep 10
+kill -TERM `lsof -R -t /DATA` || true
+kill -TERM `lsof -R -t /DATA/eschrank` || true
+kill -TERM `lsof -R -t /DATA/home` || true
+kill -TERM `lsof -R -t /DATA/isos` || true
+kill -TERM `lsof -R -t /DATA/pub` || true
+kill -TERM `lsof -R -t /DATA/www` || true
+sleep 10
+kill -9 `lsof -R -t /DATA` || true
+kill -9 `lsof -R -t /DATA/eschrank` || true
+kill -9 `lsof -R -t /DATA/home` || true
+kill -9 `lsof -R -t /DATA/isos` || true
+kill -9 `lsof -R -t /DATA/pub` || true
+kill -9 `lsof -R -t /DATA/www` || true
+zpool export DATA
+
+exit 0
diff --git a/baremetal/files/apcupsd/killpower/video-main b/baremetal/files/apcupsd/killpower/video-main
new file mode 100755
index 0000000000000000000000000000000000000000..cfdcf36d7e9f8c22ff2af43660a0abaea6085d6a
--- /dev/null
+++ b/baremetal/files/apcupsd/killpower/video-main
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# This shell script if placed in /etc/apcupsd
+# will be called by /etc/apcupsd/apccontrol before
+# apcupsd kills the power in the UPS. You probably
+# need to edit this to mount read-only /usr and /var,
+# otherwise apcupsd will not run.
+
+service apache stop
+zpool export VIDEOAG
+
+exit 0
diff --git a/baremetal/files/apcupsd/onbattery/vm01 b/baremetal/files/apcupsd/onbattery/vm01
new file mode 100755
index 0000000000000000000000000000000000000000..6efd9db713658b3348ec9100362e98eeaeee59bb
--- /dev/null
+++ b/baremetal/files/apcupsd/onbattery/vm01
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# This shell script if placed in /etc/apcupsd
+# will be called by /etc/apcupsd/apccontrol when the UPS
+# goes on batteries.
+# We send an email message to root to notify him.
+#
+SYSADMIN=root
+APCUPSD_MAIL="mail"
+
+HOSTNAME=`hostname`
+MSG="$HOSTNAME Power Failure !!!"
+#
+(
+   echo "Subject: $MSG"
+   echo " "
+   echo "$MSG"
+   echo " "
+   /sbin/apcaccess status
+) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
+/usr/bin/python2.7 /etc/apcupsd/onbattery.py
+exit 0
diff --git a/baremetal/files/apcupsd/onbattery/vm02 b/baremetal/files/apcupsd/onbattery/vm02
new file mode 100755
index 0000000000000000000000000000000000000000..6efd9db713658b3348ec9100362e98eeaeee59bb
--- /dev/null
+++ b/baremetal/files/apcupsd/onbattery/vm02
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# This shell script if placed in /etc/apcupsd
+# will be called by /etc/apcupsd/apccontrol when the UPS
+# goes on batteries.
+# We send an email message to root to notify him.
+#
+SYSADMIN=root
+APCUPSD_MAIL="mail"
+
+HOSTNAME=`hostname`
+MSG="$HOSTNAME Power Failure !!!"
+#
+(
+   echo "Subject: $MSG"
+   echo " "
+   echo "$MSG"
+   echo " "
+   /sbin/apcaccess status
+) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN
+/usr/bin/python2.7 /etc/apcupsd/onbattery.py
+exit 0
diff --git a/baremetal/files/apcupsd/vm-onbattery.py b/baremetal/files/apcupsd/vm-onbattery.py
new file mode 100755
index 0000000000000000000000000000000000000000..4612aae94f3141587f7482661e139f988ebf8c16
--- /dev/null
+++ b/baremetal/files/apcupsd/vm-onbattery.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+
+
+import logging, time, sys, socket, os
+import subprocess
+
+sys.path.append("/root/pyproxmox/src/")
+from pyproxmox import *
+logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
+
+critical_infra = set([104, 105, 106, 108, 112]) # mail, admin, fsmuw, lists, vpn
+hostname = socket.gethostname()
+
+proxmox_auth = prox_auth(hostname+'.fsmpi.rwth-aachen.de', 'apc@pve', '')
+
+pr = pyproxmox(proxmox_auth)
+
+
+def shutdown( host, vmid ):
+	pr.shutdownVirtualMachine(host, vmid)
+	return
+
+def migrate( host, vmid, target ):
+	pr.migrateVirtualMachine(host, vmid, target, True)
+	return
+
+def stop( host, vmid ):
+	pr.stopVirtualMachine(host, vmid)
+	return
+
+def start( vmid ):
+	pr.startVirtualMachine(host, vmid)
+	return
+
+def getVMs( host ):
+	virt_index_list = pr.getNodeVirtualIndex(host)["data"]
+	return virt_index_list
+
+def getHostStatus( host ):
+	cluster = pr.getClusterStatus()
+	for i in cluster:
+		for j in cluster[i]:
+			if j["type"] == "node":
+				if j["name"] == host:
+					return bool(j["state"])
+				else:
+					return False
+	return False
+
+def migrateCriticalVMs(dest_host, force=False):
+	vms = getVMs(hostname)
+	call_again = False
+	for vm in vms:
+		if vm['status'] == 'running':
+			if vm['vmid'] in critical_infra:
+				if hostname == dest_host:
+					logging.info("let vm {0} ({1}) run on {2}".format(vm['vmid'], vm['name'], hostname))
+				else:
+					call_again = True
+					logging.info("migrate vm {0} ({1}) from {2} to {3}".format(vm['vmid'], vm['name'], hostname, dest_host))
+					migrate(hostname, vm['vmid'], dest_host)
+			else:
+				call_again = True
+				if force:
+					logging.info("stop vm {0} ({1}) running on {2}".format(vm['vmid'], vm['name'], hostname))
+					stop(hostname, vm['vmid'])
+				else:
+					logging.info("shutdown vm {0} ({1}) running on {2}".format(vm['vmid'], vm['name'], hostname))
+					shutdown(hostname, vm['vmid'])
+	return call_again
+
+# issue vm migration and shutdown
+other_hostname = "vm01" if hostname == "vm02" else "vm01"
+#if getHostStatus(other_hostname):
+for i in range(0, 3):
+	time.sleep(120*i)
+	force = True if i > 1 else False
+	logging.info("migrating critical vms from {0} to {1} (force: {2}).".format(hostname, "vm02", str(force)))
+	call_again = migrateCriticalVMs("vm02", force)
+	if not call_again:
+		break
+#else:
+#	logging.warn("{0} is offline. vm migration is impossible".format(other_hostname))
+
+vmsonhost = getVMs(hostname)
+setvms = set()
+for i in vmsonhost:
+	setvms.add(i['vmid'])
+
+# issue shutdown
+if not len(setvms & critical_infra):
+	logging.info("no critical infra left. {0} may shutdown now.".format(hostname))
+	subprocess.call(["shutdown", "-h", "now"])
+else:
+	logging.info("this host serves critical infra. {0} shall not halt.".format(hostname))
+
diff --git a/baremetal/handlers/main.yml b/baremetal/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ca1e9689930e59513c2c3b41211d58f910938f03
--- /dev/null
+++ b/baremetal/handlers/main.yml
@@ -0,0 +1,9 @@
+---
+# file: roles/baremetal/handlers/main.yml
+
+- name: restart lldpd
+  service: name=lldpd state=restarted
+
+- name: restart apcupsd
+  service: name=apcupsd state=restarted
+
diff --git a/baremetal/tasks/apcupsd.yml b/baremetal/tasks/apcupsd.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c289f7f5d8292579120d5b50a69301ea2a6a2f7a
--- /dev/null
+++ b/baremetal/tasks/apcupsd.yml
@@ -0,0 +1,54 @@
+---
+# file: roles/baremetal/tasks/apcupsd.yml
+
+- name: ensure apcupsd is installed
+  apt: state=latest name=apcupsd
+  notify:
+    - restart apcupsd
+  tags:
+    - usv
+    - packages
+
+- name: ensure apcupsd is configured
+  template: src=apcupsd.conf.j2 dest=/etc/apcupsd/apcupsd.conf owner=root group=root mode=0644
+  notify:
+    - restart apcupsd
+  tags:
+    - usv
+    - config
+
+- name: gather apcupsd killpower files
+  local_action: stat path=apcupsd/killpower/{{ ansible_hostname }}
+  register: killpower
+
+- name: ensure apcupsd killpower is configured
+  copy: src=apcupsd/killpower/{{ ansible_hostname }} dest=/etc/apcupsd/killpower owner=root group=root mode=0755
+  when: killpower.stat.exists
+  tags:
+    - usv
+    - config
+
+- name: gather apcupsd onbattery files
+  local_action: stat path=apcupsd/onbattery/{{ ansible_hostname }}
+  register: onbattery
+
+- name: ensure apcupsd onbattery is configured
+  copy: src=apcupsd/onbattery/{{ ansible_hostname }} dest=/etc/apcupsd/onbattery owner=root group=root mode=0755
+  when: onbattery.stat.exists
+  tags:
+    - usv
+    - config
+
+- name: ensure on vm hosts there is our fancy onbattery script
+  copy: src=apcupsd/vm-onbattery.py dest=/etc/apcupsd/onbattery.py owner=root group=root mode=0755
+  when: "'vm' in ansible_hostname"
+  tags:
+    - usv
+    - config
+
+- name: ensure apcupsd is enabled and running
+  service: name=apcupsd state=running enabled=yes
+  tags:
+    - usv
+    - service
+
diff --git a/baremetal/tasks/bond.yml b/baremetal/tasks/bond.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8a3737ee3870aefa9b926c1dcbffd0653410a72d
--- /dev/null
+++ b/baremetal/tasks/bond.yml
@@ -0,0 +1,16 @@
+---
+# file: roles/baremetal/tasks/bond.yml
+
+- name: ensure ifenslave is installed
+  apt: state=latest name=ifenslave
+  tags:
+    - bond
+    - packages
+
+- name: ensure bonding is configured
+  template: src=interfaces.j2 dest=/etc/network/interfaces owner=root group=root mode=0644
+  when: "not 'vm' in ansible_hostname"
+  tags:
+    - bond
+    - config
+
diff --git a/baremetal/tasks/lldpd.yml b/baremetal/tasks/lldpd.yml
index d00ef784f19de7abc4ff9f24e264f4f97a9830bf..8fc3c6f64fb68fe92d647bf64a925d94a763716f 100644
--- a/baremetal/tasks/lldpd.yml
+++ b/baremetal/tasks/lldpd.yml
@@ -1,8 +1,10 @@
 ---
-# file: roles/baremetal/tasks/software.yml
+# file: roles/baremetal/tasks/lldpd.yml
 
 - name: ensure lldpd is installed
   apt: state=latest name=lldpd
+  notify:
+    - restart lldpd
   tags:
     - lldpd
     - packages
diff --git a/baremetal/tasks/main.yml b/baremetal/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..36064f1de2b3dada131de17d55f188208afc0fa9
--- /dev/null
+++ b/baremetal/tasks/main.yml
@@ -0,0 +1,9 @@
+---
+# file: roles/baremetal/tasks/main.yml
+
+- include: apcupsd.yml
+- meta: flush_handlers
+- include: bond.yml
+- meta: flush_handlers
+- include: lldpd.yml
+- meta: flush_handlers
diff --git a/baremetal/templates/apcupsd.conf.j2 b/baremetal/templates/apcupsd.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..da24a4278d7a10724306a03748684c4cd425a5fc
--- /dev/null
+++ b/baremetal/templates/apcupsd.conf.j2
@@ -0,0 +1,329 @@
+## apcupsd.conf v1.1 ##
+# 
+#  for apcupsd release 3.14.10 (13 September 2011) - debian
+#
+# "apcupsd" POSIX config file
+
+#
+# ========= General configuration parameters ============
+#
+
+# UPSNAME xxx
+#   Use this to give your UPS a name in log files and such. This
+#   is particulary useful if you have multiple UPSes. This does not
+#   set the EEPROM. It should be 8 characters or less.
+UPSNAME {{ ups_name }}
+
+# UPSCABLE <cable>
+#   Defines the type of cable connecting the UPS to your computer.
+#
+#   Possible generic choices for <cable> are:
+#     simple, smart, ether, usb
+#
+#   Or a specific cable model number may be used:
+#     940-0119A, 940-0127A, 940-0128A, 940-0020B,
+#     940-0020C, 940-0023A, 940-0024B, 940-0024C,
+#     940-1524C, 940-0024G, 940-0095A, 940-0095B,
+#     940-0095C, M-04-02-2000
+#
+UPSCABLE {{ ups_cable }}
+
+# To get apcupsd to work, in addition to defining the cable
+# above, you must also define a UPSTYPE, which corresponds to
+# the type of UPS you have (see the Description for more details).
+# You must also specify a DEVICE, sometimes referred to as a port.
+# For USB UPSes, please leave the DEVICE directive blank. For
+# other UPS types, you must specify an appropriate port or address.
+#
+# UPSTYPE   DEVICE           Description
+# apcsmart  /dev/tty**       Newer serial character device, appropriate for 
+#                            SmartUPS models using a serial cable (not USB).
+#
+# usb       <BLANK>          Most new UPSes are USB. A blank DEVICE
+#                            setting enables autodetection, which is
+#                            the best choice for most installations.
+#
+# net       hostname:port    Network link to a master apcupsd through apcupsd's 
+#                            Network Information Server. This is used if the
+#                            UPS powering your computer is connected to a 
+#                            different computer for monitoring.
+#
+# snmp      hostname:port:vendor:community
+#                            SNMP network link to an SNMP-enabled UPS device.
+#                            Hostname is the ip address or hostname of the UPS 
+#                            on the network. Vendor can be can be "APC" or 
+#                            "APC_NOTRAP". "APC_NOTRAP" will disable SNMP trap 
+#                            catching; you usually want "APC". Port is usually 
+#                            161. Community is usually "private".
+#
+# netsnmp   hostname:port:vendor:community
+#                            OBSOLETE
+#                            Same as SNMP above but requires use of the 
+#                            net-snmp library. Unless you have a specific need
+#                            for this old driver, you should use 'snmp' instead.
+#
+# dumb      /dev/tty**       Old serial character device for use with 
+#                            simple-signaling UPSes.
+#
+# pcnet     ipaddr:username:passphrase:port
+#                            PowerChute Network Shutdown protocol which can be 
+#                            used as an alternative to SNMP with the AP9617 
+#                            family of smart slot cards. ipaddr is the IP 
+#                            address of the UPS management card. username and 
+#                            passphrase are the credentials for which the card 
+#                            has been configured. port is the port number on 
+#                            which to listen for messages from the UPS, normally 
+#                            3052. If this parameter is empty or missing, the 
+#                            default of 3052 will be used.
+#
+UPSTYPE {{ ups_type }}
+DEVICE {{ ups_device }}
+
+# POLLTIME <int>
+#   Interval (in seconds) at which apcupsd polls the UPS for status. This
+#   setting applies both to directly-attached UPSes (UPSTYPE apcsmart, usb, 
+#   dumb) and networked UPSes (UPSTYPE net, snmp). Lowering this setting
+#   will improve apcupsd's responsiveness to certain events at the cost of
+#   higher CPU utilization. The default of 60 is appropriate for most
+#   situations.
+#POLLTIME 60
+
+# LOCKFILE <path to lockfile>
+#   Path for device lock file. Not used on Win32.
+LOCKFILE /var/lock
+
+# SCRIPTDIR <path to script directory>
+#   Directory in which apccontrol and event scripts are located.
+SCRIPTDIR /etc/apcupsd
+
+# PWRFAILDIR <path to powerfail directory>
+#   Directory in which to write the powerfail flag file. This file
+#   is created when apcupsd initiates a system shutdown and is
+#   checked in the OS halt scripts to determine if a killpower
+#   (turning off UPS output power) is required.
+PWRFAILDIR /etc/apcupsd
+
+# NOLOGINDIR <path to nologin directory>
+#   Directory in which to write the nologin file. The existence
+#   of this flag file tells the OS to disallow new logins.
+NOLOGINDIR /etc
+
+
+#
+# ======== Configuration parameters used during power failures ==========
+#
+
+# The ONBATTERYDELAY is the time in seconds from when a power failure
+#   is detected until we react to it with an onbattery event.
+#
+#   This means that, apccontrol will be called with the powerout argument
+#   immediately when a power failure is detected.  However, the
+#   onbattery argument is passed to apccontrol only after the 
+#   ONBATTERYDELAY time.  If you don't want to be annoyed by short
+#   powerfailures, make sure that apccontrol powerout does nothing
+#   i.e. comment out the wall.
+ONBATTERYDELAY {{ ups_onbatdelay }}
+
+# 
+# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
+# the first that occurs will cause the initation of a shutdown.
+#
+
+# If during a power failure, the remaining battery percentage
+# (as reported by the UPS) is below or equal to BATTERYLEVEL, 
+# apcupsd will initiate a system shutdown.
+BATTERYLEVEL {{ ups_batlevel }}
+
+# If during a power failure, the remaining runtime in minutes 
+# (as calculated internally by the UPS) is below or equal to MINUTES,
+# apcupsd, will initiate a system shutdown.
+MINUTES {{ ups_minutes }}
+
+# If during a power failure, the UPS has run on batteries for TIMEOUT
+# many seconds or longer, apcupsd will initiate a system shutdown.
+# A value of 0 disables this timer.
+#
+#  Note, if you have a Smart UPS, you will most likely want to disable
+#    this timer by setting it to zero. That way, you UPS will continue
+#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
+#    or the remaining battery runtime drops to or below MINUTES.  Of course,
+#    if you are testing, setting this to 60 causes a quick system shutdown
+#    if you pull the power plug.   
+#  If you have an older dumb UPS, you will want to set this to less than
+#    the time you know you can run on batteries.
+TIMEOUT {{ ups_timeout }}
+
+#  Time in seconds between annoying users to signoff prior to
+#  system shutdown. 0 disables.
+ANNOY {{ ups_annoy }}
+
+# Initial delay after power failure before warning users to get
+# off the system.
+ANNOYDELAY {{ ups_annoydelay }}
+
+# The condition which determines when users are prevented from
+# logging in during a power failure.
+# NOLOGON <string> [ disable | timeout | percent | minutes | always ]
+NOLOGON {{ ups_nologon }}
+
+# If KILLDELAY is non-zero, apcupsd will continue running after a
+# shutdown has been requested, and after the specified time in
+# seconds attempt to kill the power. This is for use on systems
+# where apcupsd cannot regain control after a shutdown.
+# KILLDELAY <seconds>  0 disables
+KILLDELAY {{ ups_killdelay }}
+
+#
+# ==== Configuration statements for Network Information Server ====
+#
+
+# NETSERVER [ on | off ] on enables, off disables the network
+#  information server. If netstatus is on, a network information
+#  server process will be started for serving the STATUS and
+#  EVENT data over the network (used by CGI programs).
+NETSERVER on
+
+# NISIP <dotted notation ip address>
+#  IP address on which NIS server will listen for incoming connections.
+#  This is useful if your server is multi-homed (has more than one
+#  network interface and IP address). Default value is 0.0.0.0 which
+#  means any incoming request will be serviced. Alternatively, you can
+#  configure this setting to any specific IP address of your server and 
+#  NIS will listen for connections only on that interface. Use the
+#  loopback address (127.0.0.1) to accept connections only from the
+#  local machine.
+NISIP 127.0.0.1
+
+# NISPORT <port> default is 3551 as registered with the IANA
+#  port to use for sending STATUS and EVENTS data over the network.
+#  It is not used unless NETSERVER is on. If you change this port,
+#  you will need to change the corresponding value in the cgi directory
+#  and rebuild the cgi programs.
+NISPORT 3551
+
+# If you want the last few EVENTS to be available over the network
+# by the network information server, you must define an EVENTSFILE.
+EVENTSFILE /var/log/apcupsd.events
+
+# EVENTSFILEMAX <kilobytes>
+#  By default, the size of the EVENTSFILE will be not be allowed to exceed
+#  10 kilobytes.  When the file grows beyond this limit, older EVENTS will
+#  be removed from the beginning of the file (first in first out).  The
+#  parameter EVENTSFILEMAX can be set to a different kilobyte value, or set
+#  to zero to allow the EVENTSFILE to grow without limit.
+EVENTSFILEMAX 10
+
+#
+# ========== Configuration statements used if sharing =============
+#            a UPS with more than one machine
+
+#
+# Remaining items are for ShareUPS (APC expansion card) ONLY
+#
+
+# UPSCLASS [ standalone | shareslave | sharemaster ]
+#   Normally standalone unless you share an UPS using an APC ShareUPS
+#   card.
+UPSCLASS standalone
+
+# UPSMODE [ disable | share ]
+#   Normally disable unless you share an UPS using an APC ShareUPS card.
+UPSMODE disable
+
+#
+# ===== Configuration statements to control apcupsd system logging ========
+#
+
+# Time interval in seconds between writing the STATUS file; 0 disables
+STATTIME 0
+
+# Location of STATUS file (written to only if STATTIME is non-zero)
+STATFILE /var/log/apcupsd.status
+
+# LOGSTATS [ on | off ] on enables, off disables
+# Note! This generates a lot of output, so if         
+#       you turn this on, be sure that the
+#       file defined in syslog.conf for LOG_NOTICE is a named pipe.
+#  You probably do not want this on.
+LOGSTATS off
+
+# Time interval in seconds between writing the DATA records to
+#   the log file. 0 disables.
+DATATIME 0
+
+# FACILITY defines the logging facility (class) for logging to syslog. 
+#          If not specified, it defaults to "daemon". This is useful 
+#          if you want to separate the data logged by apcupsd from other
+#          programs.
+#FACILITY DAEMON
+
+#
+# ========== Configuration statements used in updating the UPS EPROM =========
+#
+
+#
+# These statements are used only by apctest when choosing "Set EEPROM with conf
+# file values" from the EEPROM menu. THESE STATEMENTS HAVE NO EFFECT ON APCUPSD.
+#
+
+# UPS name, max 8 characters 
+#UPSNAME UPS_IDEN
+
+# Battery date - 8 characters
+#BATTDATE mm/dd/yy
+
+# Sensitivity to line voltage quality (H cause faster transfer to batteries)  
+# SENSITIVITY H M L        (default = H)
+#SENSITIVITY H
+
+# UPS delay after power return (seconds)
+# WAKEUP 000 060 180 300   (default = 0)
+#WAKEUP 60
+
+# UPS Grace period after request to power off (seconds)
+# SLEEP 020 180 300 600    (default = 20)
+#SLEEP 180
+
+# Low line voltage causing transfer to batteries
+# The permitted values depend on your model as defined by last letter 
+#  of FIRMWARE or APCMODEL. Some representative values are:
+#    D 106 103 100 097
+#    M 177 172 168 182
+#    A 092 090 088 086
+#    I 208 204 200 196     (default = 0 => not valid)
+#LOTRANSFER  208
+
+# High line voltage causing transfer to batteries
+# The permitted values depend on your model as defined by last letter 
+#  of FIRMWARE or APCMODEL. Some representative values are:
+#    D 127 130 133 136
+#    M 229 234 239 224
+#    A 108 110 112 114
+#    I 253 257 261 265     (default = 0 => not valid)
+#HITRANSFER 253
+
+# Battery charge needed to restore power
+# RETURNCHARGE 00 15 50 90 (default = 15)
+#RETURNCHARGE 15
+
+# Alarm delay 
+# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never
+# BEEPSTATE 0 T L N        (default = 0)
+#BEEPSTATE T
+
+# Low battery warning delay in minutes
+# LOWBATT 02 05 07 10      (default = 02)
+#LOWBATT 2
+
+# UPS Output voltage when running on batteries
+# The permitted values depend on your model as defined by last letter 
+#  of FIRMWARE or APCMODEL. Some representative values are:
+#    D 115
+#    M 208
+#    A 100
+#    I 230 240 220 225     (default = 0 => not valid)
+#OUTPUTVOLTS 230
+
+# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
+# SELFTEST 336 168 ON OFF  (default = 336)
+#SELFTEST 336
diff --git a/baremetal/templates/interfaces.j2 b/baremetal/templates/interfaces.j2
new file mode 100644
index 0000000000000000000000000000000000000000..b6b2451d2b08862c116650c7e460e948c0718ebb
--- /dev/null
+++ b/baremetal/templates/interfaces.j2
@@ -0,0 +1,19 @@
+# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+source /etc/network/interfaces.d/*
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# The bond0
+auto lo bond0
+iface bond0 inet static 
+	address {{ ipaddr }}
+	netmask {{ netmask }}
+	gateway {{ gateway }}
+	slaves eth0 eth1
+	bond_mode 802.3ad
+	bond_xmit_hash_policy layer2+3
+