comparison system.py @ 288:3af02e24eaf9

minor
author drewp@bigasterisk.com
date Sun, 21 Apr 2024 17:01:13 -0700
parents a46eb2a77df7
children 65e28d2e0cd8
comparison
equal deleted inserted replaced
287:c094d23b7943 288:3af02e24eaf9
3 from pyinfra import host 3 from pyinfra import host
4 from pyinfra.facts.server import LinuxDistribution 4 from pyinfra.facts.server import LinuxDistribution
5 from pyinfra.operations import apt, files, server, systemd 5 from pyinfra.operations import apt, files, server, systemd
6 6
7 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux'] 7 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux']
8
9 TZ = 'America/Los_Angeles' 8 TZ = 'America/Los_Angeles'
10 9
11 10
12 def timezone(): 11 def timezone():
13 files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}') 12 files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}')
31 30
32 31
33 def no_sleep(): 32 def no_sleep():
34 server.shell(commands=['systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target']) 33 server.shell(commands=['systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target'])
35 34
35
36 def nfs_server(): 36 def nfs_server():
37 # remove when we're on longhorn
37 apt.packages(packages=['nfs-kernel-server']) 38 apt.packages(packages=['nfs-kernel-server'])
38 files.template(src='templates/bang_exports.j2', dest='/etc/exports') 39 files.template(src='templates/bang_exports.j2', dest='/etc/exports')
40
39 41
40 def smaller_journals(): 42 def smaller_journals():
41 files.line(name='shorter systemctl log window, for disk space', 43 files.line(name='shorter systemctl log window, for disk space',
42 path='/etc/systemd/journald.conf', 44 path='/etc/systemd/journald.conf',
43 line='MaxFileSec', 45 line='MaxFileSec',
44 replace="MaxFileSec=7day") 46 replace="MaxFileSec=7day")
45 47
48
46 def web_forward(): 49 def web_forward():
47 for port in [80, 443]: 50 for port in [80, 443]:
48 files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/web_forward_{port}.service", serv_host='bang', port=port, name='web', fam='tcp') 51 svc = f'web_forward_{port}'
49 systemd.service(service=f'web_forward_{port}', enabled=True, restarted=True) 52 files.template(src="templates/webforward.service.j2",
53 dest=f"/etc/systemd/system/{svc}.service",
54 serv_host='bang',
55 port=port,
56 name='web',
57 fam='tcp')
58 systemd.service(service=svc, enabled=True, restarted=True)
50 59
51 def minecraft_forward(): 60 def minecraft_forward():
52 port = 25765 61 port = 25765
53 for fam in ['tcp', 'udp']: 62 for fam in ['tcp', 'udp']:
54 files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/mc_smp_{fam}_forward_{port}.service", serv_host='ditto', port=port, name='mc_smp', fam=fam) 63 svc = f'mc_smp_{fam}_forward_{port}'
55 systemd.service(service=f'mc_smp_{fam}_forward_{port}', enabled=True, restarted=True) 64 files.template(src="templates/webforward.service.j2",
65 dest=f"/etc/systemd/system/{svc}.service",
66 serv_host='ditto',
67 port=port,
68 name='mc_smp',
69 fam=fam)
70 systemd.service(service=svc, enabled=True, restarted=True)
56 71
57 server.hostname(hostname=host.name) 72 server.hostname(hostname=host.name)
58 timezone() 73 timezone()
59 fstab() 74 fstab()
60 75
61 if not is_pi: 76 if not is_pi:
62 files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal") 77 files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal")
63 78
64 if is_pi and host.name != 'pipe': 79 if is_pi and host.name != 'pipe':
65 pi_tmpfs() 80 pi_tmpfs()
66
67 # this now lives on pipe in /opt/dnsmasq/tftp/f63f14b6/config.txt
68 #files.template(src='templates/boot_config.txt.j2', dest='/boot/config.txt')
69 81
70 if host.name in ['bang', 'pipe', 'ditto']: 82 if host.name in ['bang', 'pipe', 'ditto']:
71 no_sleep() 83 no_sleep()
72 84
73 if host.name in ['bang', 'ditto']: 85 if host.name in ['bang', 'ditto']:
80 92
81 # for space, consider: 93 # for space, consider:
82 # k3s crictl rmi --prune 94 # k3s crictl rmi --prune
83 # snap list --all | while read snapname ver rev trk pub notes; do if [[ $notes = *disabled* ]]; then snap remove "$snapname" --revision="$rev"; fi; done 95 # snap list --all | while read snapname ver rev trk pub notes; do if [[ $notes = *disabled* ]]; then snap remove "$snapname" --revision="$rev"; fi; done
84 # podman system reset 96 # podman system reset
85