initial commit
diff --git a/files/defaults.Debian b/files/defaults.Debian
new file mode 100644
index 0000000..186270b
--- /dev/null
+++ b/files/defaults.Debian
@@ -0,0 +1,13 @@
+# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
+#DHCPD_CONF=/etc/dhcp/dhcpd.conf
+
+# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
+#DHCPD_PID=/var/run/dhcpd.pid
+
+# Additional options to start dhcpd with.
+# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
+#OPTIONS=""
+
+# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
+# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
+INTERFACES="{% for interface in salt['pillar.get']('isc_dhcp:server:interfaces', []) %}{{ interface.name }}{% if not loop.last %} {% endif %}{% endfor %}"
\ No newline at end of file
diff --git a/files/dhcpd.conf b/files/dhcpd.conf
new file mode 100644
index 0000000..2dc1836
--- /dev/null
+++ b/files/dhcpd.conf
@@ -0,0 +1,103 @@
+{%- from "isc_dhcp/map.jinja" import server with context %}
+
+{%- if server.omapi_port is defined -%}
+omapi-port {{ server.omapi_port }};
+{% endif -%}
+
+ddns-update-style {{ server.ddns_update_style|default('none') }};
+
+{%- if server.ddns_updates is defined %}
+ddns-updates {{ server.ddns_updates }};
+{%- endif -%}
+
+{%- if server.update_static_leases is defined %}
+update-static-leases {{ server.update_static_leases }};
+{%- endif -%}
+
+{%- if server.use_host_decl_names is defined %}
+use-host-decl-names {{ server.use_host_decl_names }};
+{{- "\n" }}
+{%- endif -%}
+
+{%- if server.zones is defined -%}
+{%- for zone in server.dhcpd.zones|default({}) %}
+zone {{ zone.name }} {
+ primary {{ zone.primary }};
+ {%- if 'key' in zone %}
+ key {{ zone.key|default('rndc-key') }};
+ {%- endif %}
+}
+{{- "\n" }}
+{%- endfor -%}
+{%- endif %}
+
+default-lease-time {{ server.default_lease_time|default('600') }};
+max-lease-time {{ server.max_lease_time|default('7200') }};
+
+{%- if server.authoritative|default(False) %}
+authoritative;
+{%- endif %}
+
+log-facility {{ server.logging.facility|default('local7') }};
+
+{%- if server.next_server is defined -%}
+{{ "\n" }}
+next-server {{ server.next_server }};
+{%- endif -%}
+
+{%- if server.filename is defined %}
+filename "{{ server.filename }}";
+{{- "\n" }}
+{%- endif -%}
+
+{%- if server.allow is defined -%}
+ {%- for a in server.dhcpd.allow|default([]) %}
+allow {{ a }};
+ {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- if server.deny is defined -%}
+ {%- for d in server.dhcpd.deny|default([]) %}
+deny {{ d }};
+ {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- if server.ignore is defined -%}
+ {%- for i in server.ignore|default([]) %}
+ignore {{ i }};
+ {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- set options = server.dhcpd.default_options|default([]) -%}
+{%- if server.dhcpd.options is defined -%}
+ {%- do options.extend(server.dhcpd.options) -%}
+{%- endif -%}
+
+{%- for o in options %}
+option {{ o }};
+{%- endfor -%}
+{%- set options = [] -%}
+
+{%- if server.default_includes is defined -%}
+ {%- set includes = server.dhcpd.default_includes -%}
+{%- endif -%}
+{%- if server.dhcpd.includes is defined -%}
+ {%- do includes.extend(server.dhcpd.includes) -%}
+{%- endif -%}
+{{ "\n" }}
+
+{%- for i in includes %}
+include "{{ i }}";
+{%- endfor -%}
+{%- set includes = [] -%}
+
+{%- if server.dhcpd.file_append is defined %}
+
+{{ server.dhcpd.file_append }}
+
+{%- endif -%}
+
+{%- endif -%}