aboutsummaryrefslogtreecommitdiffstats
path: root/roles/space_server/templates/dhcpd
diff options
context:
space:
mode:
authorEmil Renner Berthing <esmil@labitat.dk>2017-11-19 03:15:26 +0100
committerEmil Renner Berthing <esmil@labitat.dk>2017-11-19 12:46:35 +0100
commit3387c2fdcbe74be6767c5abce5beb9e7df2d3f5b (patch)
tree6263912c4754a73d13670605d9168267fa19d007 /roles/space_server/templates/dhcpd
parent3b795796bd03488a385f3ad42b10b8c0d61282c1 (diff)
downloadlabitat-ansible-3387c2fdcbe74be6767c5abce5beb9e7df2d3f5b.tar.gz
labitat-ansible-3387c2fdcbe74be6767c5abce5beb9e7df2d3f5b.tar.xz
labitat-ansible-3387c2fdcbe74be6767c5abce5beb9e7df2d3f5b.zip
space_server: generate DNS, mDNS and dhcp entries
..from the same variables
Diffstat (limited to 'roles/space_server/templates/dhcpd')
-rw-r--r--roles/space_server/templates/dhcpd/dhcpd.conf.j2203
1 files changed, 203 insertions, 0 deletions
diff --git a/roles/space_server/templates/dhcpd/dhcpd.conf.j2 b/roles/space_server/templates/dhcpd/dhcpd.conf.j2
new file mode 100644
index 0000000..1b832e1
--- /dev/null
+++ b/roles/space_server/templates/dhcpd/dhcpd.conf.j2
@@ -0,0 +1,203 @@
+#
+# DHCP Server Configuration file.
+# see /usr/share/doc/dhcp/dhcpd.conf.example
+# see dhcpd.conf(5) man page
+#
+
+# The ddns-updates-style parameter controls whether or not the server will
+# attempt to do a DNS update when a lease is confirmed. We default to the
+# behavior of the version 2 packages ('none', since DHCP v2 didn't
+# have support for DDNS.)
+ddns-update-style none;
+
+# option definitions common to all supported networks...
+#option domain-name "labitat.dk";
+default-lease-time 3600;
+max-lease-time 7200;
+min-lease-time 600;
+
+# If this DHCP server is the official DHCP server for the local
+# network, the authoritative directive should be uncommented.
+authoritative;
+
+# Use this to send dhcp log messages to a different log file (you also
+# have to hack syslog.conf to complete the redirection).
+log-facility daemon;
+
+
+# Admin net
+subnet 10.42.0.0 netmask 255.255.255.0 {
+ range 10.42.0.50 10.42.0.69;
+ range 10.42.0.71 10.42.0.250;
+ option routers 10.42.0.1;
+ option domain-name-servers 185.38.175.0;
+ #option ntp-servers 90.185.0.18;
+{% for host in local_hosts %}
+{% if host.ips | ipaddr('10.42.0.0/24') %}
+{% if 'mac' in host %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ host {{ host.name }} {
+ hardware ethernet {{ host.mac }};
+ fixed-address {{ host.ips | ipaddr('10.42.0.0/24') | first }};
+{% if 'filename' in host %}
+ filename "{{ host.filename }}";
+{% endif %}
+ }
+{% else %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ #host {{ host.name }} {
+ # fixed-address {{ host.ips | ipaddr('10.42.0.0/24') | first }};
+ #}
+{% endif %}
+{% endif %}
+{% endfor %}
+
+ host spacewand {
+ hardware ethernet 00:1f:7b:b4:0e:00;
+ fixed-address 10.42.0.70;
+ }
+}
+
+
+# Wired net
+subnet 10.42.1.0 netmask 255.255.255.0 {
+ range dynamic-bootp 10.42.1.50 10.42.1.250;
+ option routers 10.42.1.1;
+ option domain-name-servers 185.38.175.0;
+ #option ntp-servers 90.185.0.18;
+ next-server 10.42.1.1;
+ filename "pxelinux.0";
+{% for host in local_hosts %}
+{% if host.ips | ipaddr('10.42.1.0/24') %}
+{% if 'mac' in host %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ host {{ host.name }} {
+ hardware ethernet {{ host.mac }};
+ fixed-address {{ host.ips | ipaddr('10.42.1.0/24') | first }};
+{% if 'filename' in host %}
+ filename "{{ host.filename }}";
+{% endif %}
+ }
+{% else %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ #host {{ host.name }} {
+ # fixed-address {{ host.ips | ipaddr('10.42.1.0/24') | first }};
+ #}
+{% endif %}
+{% endif %}
+{% endfor %}
+}
+
+
+# Private wifi
+subnet 10.42.2.0 netmask 255.255.255.0 {
+ range 10.42.2.50 10.42.2.250;
+ option routers 10.42.2.1;
+ option domain-name-servers 185.38.175.0;
+ #option ntp-servers 90.185.0.18;
+ next-server 10.42.2.1;
+ filename "pxelinux.0";
+{% for host in local_hosts %}
+{% if host.ips | ipaddr('10.42.2.0/24') %}
+{% if 'mac' in host %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ host {{ host.name }} {
+ hardware ethernet {{ host.mac }};
+ fixed-address {{ host.ips | ipaddr('10.42.2.0/24') | first }};
+{% if 'filename' in host %}
+ filename "{{ host.filename }}";
+{% endif %}
+ }
+{% else %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ #host {{ host.name }} {
+ # fixed-address {{ host.ips | ipaddr('10.42.2.0/24') | first }};
+ #}
+{% endif %}
+{% endif %}
+{% endfor %}
+}
+
+# Free wifi
+subnet 10.42.3.0 netmask 255.255.255.0 {
+ range 10.42.3.50 10.42.3.250;
+ option routers 10.42.3.1;
+ option domain-name-servers 185.38.175.0;
+ #option ntp-servers 90.185.0.18;
+{% for host in local_hosts %}
+{% if host.ips | ipaddr('10.42.3.0/24') %}
+{% if 'mac' in host %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ host {{ host.name }} {
+ hardware ethernet {{ host.mac }};
+ fixed-address {{ host.ips | ipaddr('10.42.3.0/24') | first }};
+{% if 'filename' in host %}
+ filename "{{ host.filename }}";
+{% endif %}
+ }
+{% else %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ #host {{ host.name }} {
+ # fixed-address {{ host.ips | ipaddr('10.42.3.0/24') | first }};
+ #}
+{% endif %}
+{% endif %}
+{% endfor %}
+}
+
+# Password protected wifi
+subnet 10.42.4.0 netmask 255.255.255.0 {
+ range 10.42.4.50 10.42.4.250;
+ option routers 10.42.4.1;
+ option domain-name-servers 185.38.175.0;
+ #option ntp-servers 90.185.0.18;
+{% for host in local_hosts %}
+{% if host.ips | ipaddr('10.42.4.0/24') %}
+{% if 'mac' in host %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ host {{ host.name }} {
+ hardware ethernet {{ host.mac }};
+ fixed-address {{ host.ips | ipaddr('10.42.4.0/24') | first }};
+{% if 'filename' in host %}
+ filename "{{ host.filename }}";
+{% endif %}
+ }
+{% else %}
+
+{% if 'description' in host %}
+ # {{ host.description }}
+{% endif %}
+ #host {{ host.name }} {
+ # fixed-address {{ host.ips | ipaddr('10.42.4.0/24') | first }};
+ #}
+{% endif %}
+{% endif %}
+{% endfor %}
+}