Mercurial > code > home > repos > infra
changeset 106:5faa7e3aa38f
bang can use dhcp and gets a static addr
author | drewp |
---|---|
date | Tue, 19 Jul 2022 17:39:12 -0700 |
parents | 95fcc05c2747 |
children | d70816c7c7db |
files | dns.py |
diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/dns.py Mon Jul 18 18:13:47 2022 -0700 +++ b/dns.py Tue Jul 19 17:39:12 2022 -0700 @@ -1,8 +1,9 @@ +import tempfile from pyinfra import host from pyinfra.operations import apt, files, systemd -def dnsmasq_instance(net_name, house_iface, dhcp_range, router): +def dnsmasq_instance(net_name, house_iface, dhcp_range, router, dhcp_hosts_filename='/dev/null'): files.directory(path=f'/opt/dnsmasq/{net_name}') files.template(src='templates/dnsmasq/dnsmasq.conf.j2', dest=f'/opt/dnsmasq/{net_name}/dnsmasq.conf', @@ -12,7 +13,7 @@ router=router, dhcp_enabled=net_name == '10.2' and host.name == 'pipe') files.template(src='templates/dnsmasq/hosts.j2', dest=f'/opt/dnsmasq/{net_name}/hosts', net=net_name) - files.template(src='/dev/null', dest=f'/opt/dnsmasq/{net_name}/dhcp_hosts', net=net_name) + files.template(src=dhcp_hosts_filename, dest=f'/opt/dnsmasq/{net_name}/dhcp_hosts', net=net_name) files.template(src='templates/dnsmasq/dnsmasq.service.j2', dest=f'/etc/systemd/system/dnsmasq_{net_name}.service', @@ -37,7 +38,12 @@ apt.packages(packages=['dnsmasq']) systemd.service(service='dnsmasq', enabled=False, running=False) files.directory(path='/opt/dnsmasq') - dnsmasq_instance('10.2', house_iface='eth1', dhcp_range='10.2.0.20,10.2.0.120', router='10.2.0.3') + dh = tempfile.NamedTemporaryFile() + dh.write(b'''\ +60:e3:27:04:4a:85,bang,10.2.0.1,24h +''') + dh.flush() + dnsmasq_instance('10.2', house_iface='eth1', dhcp_range='10.2.0.20,10.2.0.120', router='10.2.0.3', dhcp_hosts_filename=dh.name) else: pass