annotate dns_check.py @ 156:d10cab700ce6

add user
author drewp@bigasterisk.com
date Thu, 16 Mar 2023 17:42:29 -0700
parents bf1573dd1947
children 3af02e24eaf9
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 tempfile
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
3
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
4 from pyinfra import host
81
bf1573dd1947 dns fixes
drewp@bigasterisk.com
parents: 78
diff changeset
5 from pyinfra.operations import server
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
6
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
7
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
8 def check(name, addr):
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
9 server.shell(commands=[
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
10 # note: one big string
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
11 f"out=`dnsget -q {name}`; "
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
12 f'[ -n "$out" ] || exit 1; '
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
13 f"if [ $out != {addr} ]; then echo got $out >&2 ; exit 1; fi"
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
14 ])
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
15
45
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
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
25 bang.bigasterisk.com
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
26 bang.bigasterisk.com.
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
27 prime
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
28 projects.bigasterisk.com
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
29 etc
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
30
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
31 '''
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
32
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
33 if host.name in ['dash', 'bang', 'slash']:
78
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 70
diff changeset
34 check('dash', '10.2.0.212')
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
35 check('projects.bigasterisk.com', '10.2.0.1')
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
36 elif host.name in ['prime']:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
37 check('dash', '10.5.0.5')
53
8945bf71da22 make bang look to itself, not just to ISP, for projects.bigasterisk.com
drewp@bigasterisk.com
parents: 45
diff changeset
38 check('projects.bigasterisk.com', '10.2.0.1') # expected the public addr, but fine
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
39 else:
78
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 70
diff changeset
40 check('dash', '10.2.0.212')
53
8945bf71da22 make bang look to itself, not just to ISP, for projects.bigasterisk.com
drewp@bigasterisk.com
parents: 45
diff changeset
41 check('projects.bigasterisk.com', '10.2.0.1')
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
42
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
43 if host.name in ['prime']:
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
44 check('bang', '10.5.0.1')
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 53
diff changeset
45 check('slash', '10.5.0.6')
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
46 else:
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
47 check('bang', '10.2.0.1')
81
bf1573dd1947 dns fixes
drewp@bigasterisk.com
parents: 78
diff changeset
48 check('slash', '10.2.0.145')
45
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
49
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
50 check('bang5', '10.5.0.1')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
51 check('prime', '10.5.0.2')
ee00f4b5801a new dns-check task
drewp@bigasterisk.com
parents:
diff changeset
52