annotate tasks.py @ 332:d4893670f888 default tip

WIP: use watchdog reboot timer on pi
author drewp@bigasterisk.com
date Thu, 27 Feb 2025 11:09:29 -0800
parents 5b88b38f2471
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
326
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
1 from invoke.tasks import task
0
1550a6db59b3 first ported section from ansible. shorter, faster, clearer.
drewp@bigasterisk.com
parents:
diff changeset
2
1
b664f1027992 system.py port from ansible
drewp@bigasterisk.com
parents: 0
diff changeset
3 cmd = '''
0
1550a6db59b3 first ported section from ansible. shorter, faster, clearer.
drewp@bigasterisk.com
parents:
diff changeset
4 HOME=/root
1550a6db59b3 first ported section from ansible. shorter, faster, clearer.
drewp@bigasterisk.com
parents:
diff changeset
5 export HOME
1550a6db59b3 first ported section from ansible. shorter, faster, clearer.
drewp@bigasterisk.com
parents:
diff changeset
6 eval `keychain --quiet --eval id_ecdsa`
1550a6db59b3 first ported section from ansible. shorter, faster, clearer.
drewp@bigasterisk.com
parents:
diff changeset
7 cd /my/proj/infra
202
a5399e8b47b6 upgrade some ubuntu
drewp@bigasterisk.com
parents: 155
diff changeset
8 pdm run pyinfra '''
1
b664f1027992 system.py port from ansible
drewp@bigasterisk.com
parents: 0
diff changeset
9
205
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
10
139
105b628e3bfa compact/dry
drewp@bigasterisk.com
parents: 136
diff changeset
11 def _run(ctx, s):
325
4d1b6a6e65d2 minor project edits
drewp@bigasterisk.com
parents: 320
diff changeset
12 ctx.run(cmd + ('--no-wait' * 0) + ' -y inventory.py %s' % s, pty=True, echo=True)
34
d4fb38f13c79 refactor dns and some other non-net setup
drewp@bigasterisk.com
parents: 23
diff changeset
13
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 96
diff changeset
14
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents: 54
diff changeset
15 @task
205
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
16 def dns_check(ctx):
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
17 _run(ctx, 'dns_check.py -v')
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
18
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 96
diff changeset
19
68
4a28a6b26af4 new task
drewp@bigasterisk.com
parents: 61
diff changeset
20 @task
205
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
21 def dns_k8s_check(ctx):
288
drewp@bigasterisk.com
parents: 234
diff changeset
22 ctx.run('pdm run python dns_k8s_check.py', pty=True)
205
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
23
8
226f3c8419b2 kube setup
drewp@bigasterisk.com
parents: 7
diff changeset
24
14
ac4d24d01b68 add syncthing service
drewp@bigasterisk.com
parents: 12
diff changeset
25 @task
205
826db3c40fa7 whitespace/etc
drewp@bigasterisk.com
parents: 202
diff changeset
26 def multikube(ctx): # danger- wipes previous k3s
111
340d778a1682 start multikube experiment
drewp@bigasterisk.com
parents: 110
diff changeset
27 from multikube_config import server_node, nodes
340d778a1682 start multikube experiment
drewp@bigasterisk.com
parents: 110
diff changeset
28 ctx.run(cmd + 'inventory.py multikube_wipe.py', pty=True)
340d778a1682 start multikube experiment
drewp@bigasterisk.com
parents: 110
diff changeset
29 ctx.run(cmd + f'inventory.py multikube.py --limit {server_node}', pty=True)
113
c520672d0930 closer to multi-node k3s working, but still doesn't quite network right
drewp@bigasterisk.com
parents: 111
diff changeset
30 if nodes:
136
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
31 ctx.run(cmd + f'inventory.py multikube.py {" ".join(f"--limit {n}" for n in nodes)}', pty=True)
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
32 print("""now try
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
33 curl http://10.43.0.10:9153/metrics | head
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
34 k3s kubectl run hello --image crccheck/hello-world
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
35 curl -m2 http://`kubectl get pod/hello '-o=jsonpath={.status.podIP}'`:8000
375515ab60ba multikube experiment junk. do not run
drewp@bigasterisk.com
parents: 126
diff changeset
36 """)
111
340d778a1682 start multikube experiment
drewp@bigasterisk.com
parents: 110
diff changeset
37
16
c5784e3d4f8d mail/postfix setup on prime
drewp@bigasterisk.com
parents: 14
diff changeset
38
60
a949704defd0 new pyinfra
drewp@bigasterisk.com
parents: 59
diff changeset
39 @task
54
00d5cd21cade save ran_all.timestamp
drewp@bigasterisk.com
parents: 50
diff changeset
40 def all(ctx):
326
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
41 for opGroup in [
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
42 'users',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
43 'system',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
44 'apt',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
45 'packages',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
46 'net',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
47 'dns',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
48 'wireguard',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
49 'kube',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
50 'sync',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
51 'mail',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
52 'home',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
53 ]:
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
54 ctx.run(
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
55 ' '.join([
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
56 cmd, #'--no-wait',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
57 '-y',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
58 'inventory.py',
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
59 'all_operations.py'
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
60 ]),
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
61 pty=True,
5b88b38f2471 huge reorg, reog toplevel functions in preparation of a ui with nice task lists
drewp@bigasterisk.com
parents: 325
diff changeset
62 env={'GROUP': opGroup})
54
00d5cd21cade save ran_all.timestamp
drewp@bigasterisk.com
parents: 50
diff changeset
63 ctx.run('touch /my/proj/infra/ran_all.timestamp')
00d5cd21cade save ran_all.timestamp
drewp@bigasterisk.com
parents: 50
diff changeset
64
00d5cd21cade save ran_all.timestamp
drewp@bigasterisk.com
parents: 50
diff changeset
65
16
c5784e3d4f8d mail/postfix setup on prime
drewp@bigasterisk.com
parents: 14
diff changeset
66 @task
3
61945df2a392 updates to work on recent raspbian installs
drewp@bigasterisk.com
parents: 1
diff changeset
67 def get_fact(ctx, host='dash', fact='server.LinuxDistribution'):
8
226f3c8419b2 kube setup
drewp@bigasterisk.com
parents: 7
diff changeset
68 ctx.run(cmd + f'{host} -vv fact {fact}', pty=True)