From 2265dd235bf7ad5cc9937a7046a790b0d82d8f51 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Fri, 22 Mar 2019 09:42:42 -0500 Subject: [PATCH] roles/hass-dhcp: Deploy DHCP server for HA The *hass-dhcp* role installs dnsmasq and configures it to serve DHCP requests on the Home Assistant network. Since this network is not routed, the regular DHCP relay/server setup will not work. --- homeassistant.yml | 9 +++++++++ roles/hass-dhcp/defaults/main.yml | 5 +++++ roles/hass-dhcp/handlers/main.yml | 4 ++++ roles/hass-dhcp/tasks/main.yml | 14 ++++++++++++++ .../templates/homeassistant.dnsmasq.conf.j2 | 3 +++ 5 files changed, 35 insertions(+) create mode 100644 roles/hass-dhcp/defaults/main.yml create mode 100644 roles/hass-dhcp/handlers/main.yml create mode 100644 roles/hass-dhcp/tasks/main.yml create mode 100644 roles/hass-dhcp/templates/homeassistant.dnsmasq.conf.j2 diff --git a/homeassistant.yml b/homeassistant.yml index 40d5f5f..1d46ed0 100644 --- a/homeassistant.yml +++ b/homeassistant.yml @@ -11,3 +11,12 @@ service: name: httpd state: started + +- hosts: home-assistant + roles: + - hass-dhcp + tasks: + - name: ensure dnsmasq is running + service: + name: dnsmasq + state: started diff --git a/roles/hass-dhcp/defaults/main.yml b/roles/hass-dhcp/defaults/main.yml new file mode 100644 index 0000000..3f30a2e --- /dev/null +++ b/roles/hass-dhcp/defaults/main.yml @@ -0,0 +1,5 @@ +hass_dhcp_range: + start: 192.168.1.100 + end: 192.168.1.250 +hass_dhcp_lease_time: 1h +hass_dns_domain: homeassistant.io diff --git a/roles/hass-dhcp/handlers/main.yml b/roles/hass-dhcp/handlers/main.yml new file mode 100644 index 0000000..bf3bfdc --- /dev/null +++ b/roles/hass-dhcp/handlers/main.yml @@ -0,0 +1,4 @@ +- name: restart dnsmasq + service: + name: dnsmasq + state: restarted diff --git a/roles/hass-dhcp/tasks/main.yml b/roles/hass-dhcp/tasks/main.yml new file mode 100644 index 0000000..8a0a651 --- /dev/null +++ b/roles/hass-dhcp/tasks/main.yml @@ -0,0 +1,14 @@ +- name: ensure dnsmasq is installed + package: + name: dnsmasq + state: present + tags: + - install + +- name: ensure dnsmasq is configured for homeassistant + template: + src: homeassistant.dnsmasq.conf.j2 + dest: /etc/dnsmasq.d/homeassistant.conf + mode: '0644' + notify: + - restart dnsmasq diff --git a/roles/hass-dhcp/templates/homeassistant.dnsmasq.conf.j2 b/roles/hass-dhcp/templates/homeassistant.dnsmasq.conf.j2 new file mode 100644 index 0000000..8b54181 --- /dev/null +++ b/roles/hass-dhcp/templates/homeassistant.dnsmasq.conf.j2 @@ -0,0 +1,3 @@ +interface={{ hass_interface }} +dhcp-range={{ hass_dhcp_range.start }},{{ hass_dhcp_range.end }},{{ hass_dhcp_lease_time }} +domain={{ hass_dns_domain }}