diff system.py @ 91:ab1e0cbe8009

refactor and add podman registries
author drewp@bigasterisk.com
date Fri, 15 Jul 2022 14:26:37 -0700
parents 1ac08aba5ae5
children 69058ad170be
line wrap: on
line diff
--- a/system.py	Fri Jul 15 14:25:58 2022 -0700
+++ b/system.py	Fri Jul 15 14:26:37 2022 -0700
@@ -10,30 +10,25 @@
 
 server.hostname(hostname=host.name)
 
-#
-# timezone
-#
+def timezone():
+    files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}')
+    files.replace(path='/etc/timezone', text='.*', replace=TZ)
+    apt.packages(update=True,
+                cache_time=86400,
+                packages=['tzdata'],
+                force=True,
+                _env={
+                    'TZ': TZ,
+                    'LANG': 'en_US.UTF-8',
+                    'DEBIAN_FRONTEND': 'noninteractive'
+                })
 
-files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}')
-files.replace(path='/etc/timezone', text='.*', replace=TZ)
-apt.packages(update=True,
-             cache_time=86400,
-             packages=['tzdata'],
-             force=True,
-             _env={
-                 'TZ': TZ,
-                 'LANG': 'en_US.UTF-8',
-                 'DEBIAN_FRONTEND': 'noninteractive'
-             })
+def fstab():
+    fstab_file = f'files/fstab/{host.name}'
+    if os.path.exists(fstab_file):
+        files.put(src=fstab_file, dest='/etc/fstab')
 
-#
-# fstab
-#
-
-fstab_file = f'files/fstab/{host.name}'
-if os.path.exists(fstab_file):
-    files.put(src=fstab_file, dest='/etc/fstab')
-if is_pi and host.name != 'pipe':
+def pi_tmpfs():
     for line in [
             'tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0',
             'tmpfs /tmp tmpfs defaults,noatime 0 0',
@@ -43,33 +38,22 @@
     # stop SD card corruption (along with some mounts in fstab)
     apt.packages(packages=['dphys-swapfile'], present=False)
 
-#
-# docker (delete this?)
-#
 
 # don't try to get aufs-dkms on rpi-- https://github.com/docker/for-linux/issues/709
-if False and not is_pi: # maybe add podman? but do it in packages.py
-    apt.packages(packages=['docker.io'], no_recommends=True)
-    files.put(src='files/docker_daemon.json', dest='/etc/docker/daemon.json')
-    systemd.service(service='docker', running=True, enabled=True, restarted=True)
-
-if not is_pi:
-    files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal")
-
-    files.line(path='/etc/ssh/sshd_config', line="^UseDNS\b", replace="UseDNS no")
-    systemd.service(service='sshd', reloaded=True)
+def podman_inecure_registry():
+    files.template(src='templates/kube/podman_registries.conf.j2', dest='/etc/containers/registries.conf.d/bang.conf')
 
 
-if host.name in ['bang', 'pipe']:
+def no_sleep():
     server.shell(commands=['systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target'])
 
-if host.name == 'bang':
+def nfs_server():
     apt.packages(packages=['nfs-kernel-server'])
     files.template(src='templates/bang_exports.j2', dest='/etc/exports')
 
     # sudo zfs set sharenfs="rw=10.5.0.0/16" stor6
 
-if host.name == 'prime':
+def smaller_journals():
     files.line(name='shorter systemctl log window, for disk space',
                path='/etc/systemd/journald.conf',
                line='MaxFileSec',
@@ -78,3 +62,24 @@
     for port in [80, 443]:
         files.template(src="templates/webforward.service.j2", dest=f"/etc/systemd/system/web_forward_{port}.service", port=port)
         systemd.service(service=f'web_forward_{port}', enabled=True, restarted=True)
+
+timezone()
+fstab()
+
+if not is_pi:
+    files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal")
+
+if is_pi and host.name != 'pipe':
+    pi_tmpfs()
+
+if not is_pi:    
+    podman_inecure_registry()
+
+if host.name in ['bang', 'pipe']:
+    no_sleep()
+
+if host.name == 'bang':
+    nfs_server()
+
+if host.name == 'prime':
+    smaller_journals()
\ No newline at end of file