Mercurial > code > home > repos > infra
diff dns_check.py @ 45:ee00f4b5801a
new dns-check task
author | drewp@bigasterisk.com |
---|---|
date | Mon, 14 Feb 2022 21:53:36 -0800 |
parents | |
children | 8945bf71da22 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dns_check.py Mon Feb 14 21:53:36 2022 -0800 @@ -0,0 +1,49 @@ +# run key dns lookups everywhere +import subprocess +import tempfile + +import requests +from pyinfra import host +from pyinfra.operations import apt, files, server, systemd + +def check(name, addr): + server.shell(commands=[ + # note: one big string + f"out=`dnsget -q {name}`; " + f'[ -n "$out" ] || exit 1; ' + f"if [ $out != {addr} ]; then echo got $out >&2 ; exit 1; fi" + ]) + +''' +idea: read a file that looks like this: + +on host: bang dash slash prime +lookup: +bang 127.0.1.1 10.1.0.1 10.1.0.1 10.5.0.1 +bang5 10.5.0.1 10.5.0.1 10.5.0.1 10.5.0.1 +dash 10.1.0.5 127.0.1.1 10.1.0.5 10.5.0.5 +etc + +(or another idea: wireguard everywhere all the time) +''' + +# outside k8s +if host.name in ['dash', 'bang', 'slash']: + check('dash', '10.1.0.5') +elif host.name in ['prime']: + check('dash', '10.5.0.5') +else: + check('dash', '10.1.0.5') + +if host.name in ['bang']: + check('bang', '10.2.0.1') +elif host.name in ['prime']: + check('bang', '10.5.0.1') +else: + check('bang', '10.2.0.1') + +check('bang5', '10.5.0.1') +check('prime', '10.5.0.2') +check('slash', '10.1.0.6') + +# inside k8s \ No newline at end of file