From fb0096a4ca1440058778b9061b967d609c0c6534 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 22 Dec 2021 00:21:32 +0100 Subject: add role for dhcp-server --- roles/network/dhcp-server/defaults/main.yml | 12 ++++++++++++ roles/network/dhcp-server/handlers/main.yml | 5 +++++ roles/network/dhcp-server/tasks/main.yml | 29 +++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 roles/network/dhcp-server/defaults/main.yml create mode 100644 roles/network/dhcp-server/handlers/main.yml create mode 100644 roles/network/dhcp-server/tasks/main.yml (limited to 'roles/network') diff --git a/roles/network/dhcp-server/defaults/main.yml b/roles/network/dhcp-server/defaults/main.yml new file mode 100644 index 00000000..26681652 --- /dev/null +++ b/roles/network/dhcp-server/defaults/main.yml @@ -0,0 +1,12 @@ +--- +# dhcp_server_interfaces: +# eth0: +# prefix: 192.168.23.0/24 +# offsets: +# start: 100 +# limit: 199 +# gw: 1 +# domain: example.com +# dns: +# - 1.1.1.1 +# - 9.9.9.9 diff --git a/roles/network/dhcp-server/handlers/main.yml b/roles/network/dhcp-server/handlers/main.yml new file mode 100644 index 00000000..bb6773e9 --- /dev/null +++ b/roles/network/dhcp-server/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart isc-dhcp-server + service: + name: isc-dhcp-server + state: restarted diff --git a/roles/network/dhcp-server/tasks/main.yml b/roles/network/dhcp-server/tasks/main.yml new file mode 100644 index 00000000..43851d37 --- /dev/null +++ b/roles/network/dhcp-server/tasks/main.yml @@ -0,0 +1,29 @@ +--- +- name: install isc-dhcp-server + apt: + name: isc-dhcp-server + state: present + +- name: configure interfaces + lineinfile: + path: /etc/default/isc-dhcp-server + regexp: '^INTERFACESv4=' + line: "INTERFACESv4=\"{{ dhcp_server_interfaces | list | sort | join(' ') }}\"" + notify: restart isc-dhcp-server + +- name: configure subnets + blockinfile: + path: /etc/dhcp/dhcpd.conf + marker: '### {mark} ansible network/dhcp-server subnets ###' + block: | + {% for interface,subnet in dhcp_server_interfaces.items() %} + subnet {{ subnet.prefix | ipaddr('network') }} netmask {{ subnet.prefix | ipaddr('netmask') }} { + range {{ subnet.prefix | ipaddr(subnet.start) | ipaddr('address') }} {{ subnet.prefix | ipaddr(subnet.limit) | ipaddr('address') }}; + option routers {{ subnet.gateway }}; + option domain-name-servers {{ subnet.dns | join(', ') }}; + option domain-name "{{ subnet.domain }}"; + } + {% if not loop.last %} + + {% endif %} + {% endfor %} -- cgit v1.2.3