initial commit
diff --git a/server.sls b/server.sls
new file mode 100644
index 0000000..4feed67
--- /dev/null
+++ b/server.sls
@@ -0,0 +1,66 @@
+{%- from "isc_dhcp/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+isc_dhcp_packages:
+  pkg.installed:
+  - pkgs: {{ server.pkgs }}
+
+{{ server.config.defaults_config }}:
+  file.managed:
+  - makedirs: True
+  - source: 'salt://isc_dhcp/files/defaults.{{ salt['grains.get']('os_family')) }}'
+  - template: jinja
+  - mode: 644
+  - require:
+   - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- if server.dhcpd_config is defined %}
+
+{{ server.config.dhcpd.path }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.conf
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+{%- if server.hosts_config is defined %}
+
+{{ server.hosts_config }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.hosts
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+{%- if server.subnets_config is defined %}
+
+{{ server.subnets_config }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.subnets
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+isc_dhcp_service:
+  service.running:
+  - name: {{ server.service }}
+  - enable: true
+
+{%- endif %}
\ No newline at end of file