annotate dns_check.py @ 48:d7d29a690a6c

fix dns on prime, maybe. hard to test
author drewp@bigasterisk.com
date Mon, 14 Feb 2022 21:55:50 -0800
parents ee00f4b5801a
children 8945bf71da22
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
1 # run key dns lookups everywhere
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
2 import subprocess
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
3 import tempfile
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
4
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
5 import requests
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
6 from pyinfra import host
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
7 from pyinfra.operations import apt, files, server, systemd
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
8
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
9 def check(name, addr):
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
10 server.shell(commands=[
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
11 # note: one big string
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
12 f"out=`dnsget -q {name}`; "
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
13 f'[ -n "$out" ] || exit 1; '
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
14 f"if [ $out != {addr} ]; then echo got $out >&2 ; exit 1; fi"
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
15 ])
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
16
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
17 '''
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
18 idea: read a file that looks like this:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
19
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
20 on host: bang dash slash prime
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
21 lookup:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
22 bang 127.0.1.1 10.1.0.1 10.1.0.1 10.5.0.1
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
23 bang5 10.5.0.1 10.5.0.1 10.5.0.1 10.5.0.1
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
24 dash 10.1.0.5 127.0.1.1 10.1.0.5 10.5.0.5
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
25 etc
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
26
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
27 (or another idea: wireguard everywhere all the time)
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
28 '''
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
29
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
30 # outside k8s
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
31 if host.name in ['dash', 'bang', 'slash']:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
32 check('dash', '10.1.0.5')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
33 elif host.name in ['prime']:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
34 check('dash', '10.5.0.5')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
35 else:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
36 check('dash', '10.1.0.5')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
37
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
38 if host.name in ['bang']:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
39 check('bang', '10.2.0.1')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
40 elif host.name in ['prime']:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
41 check('bang', '10.5.0.1')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
42 else:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
43 check('bang', '10.2.0.1')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
44
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
45 check('bang5', '10.5.0.1')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
46 check('prime', '10.5.0.2')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
47 check('slash', '10.1.0.6')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
48
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
49 # inside k8s