changeset 313:b3acb9fff274

updates for new ga-iot (pi reformat of host=garage)
author drewp@bigasterisk.com
date Mon, 23 Sep 2024 00:32:36 -0700
parents 5f8d328e32b3
children 8a1cbc033fc1
files inventory.py pi-setup/setup_pi.py pi-setup/tasks.py templates/dnsmasq/hosts.j2 templates/wireguard/wg0.conf.j2 users.py
diffstat 6 files changed, 11 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/inventory.py	Mon Sep 16 20:11:34 2024 -0700
+++ b/inventory.py	Mon Sep 23 00:32:36 2024 -0700
@@ -16,6 +16,7 @@
     ('ws-printer', {'drewp_uid': 1000, 'drewp_gid': 501,  'wireguard_address': '10.5.0.31', 'ssh_hostname': 'ws-printer5',                                                                                      }),
     # ('li-drums',   {'drewp_uid': 1000, 'drewp_gid': 501,  'wireguard_address': '10.5.0.33', 'ssh_hostname': 'li-drums5',                                                                                        }),
     # ('gn-music',   {'drewp_uid': 1000, 'drewp_gid': 501,  'wireguard_address': '10.5.0.32', 'ssh_hostname': 'gn-music5',                                                                                        }),
+    ('ga-iot',     {'drewp_uid': 1501, 'drewp_gid': 501,  'wireguard_address': '10.5.0.14', 'ssh_hostname': '10.2.0.37',                                                                                        }),
 ]
 
 hosted = [
--- a/pi-setup/setup_pi.py	Mon Sep 16 20:11:34 2024 -0700
+++ b/pi-setup/setup_pi.py	Mon Sep 23 00:32:36 2024 -0700
@@ -56,6 +56,7 @@
     async with mount(WORK, WORK / 'raspios.img', IMG_BOOT_OFFSET) as img_boot:
         await run('cp', img_boot / 'bcm2710-rpi-3-b-plus.dtb', WORK)
         await run('cp', img_boot / 'kernel8.img', WORK)
+        await run('cp', img_boot / 'bootcode.bin', WORK)
 
 
 @step
@@ -80,7 +81,7 @@
         ['-m', '1G'],
         ['-smp', '4'],
         ['-kernel', WORK / 'kernel8.img'],
-        ['-sd', WORK / 'raspios.img'],
+        ['-drive', 'file=' + str(WORK / 'raspios.img') + ',format=raw'],
         ['-append', "rw earlyprintk loglevel=8 console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1"],
         ['-device', 'usb-net,netdev=net0'],
         ['-netdev', 'user,id=net0,hostfwd=tcp::2222-:22'],
@@ -116,7 +117,7 @@
     await run('ssh', ssh_opts, 'root@localhost', *cmd_on_pi)
 
 
-async def _get_iscsi_device(better_be_the_iscsi_device='sde') -> Path:
+async def _get_iscsi_device(better_be_the_iscsi_device='sdh') -> Path:
     # don't screw up- this device is about to get formatted!
     dev_path = Path(f'/dev/{better_be_the_iscsi_device}')
 
@@ -125,6 +126,7 @@
         if f'/dev/{m}' != str(dev_path):
             raise ValueError(f'surprised by attached iscsi disk {m!r} (try `iscsiadm -m node --logoutall=all`)')
 
+    # the following might no longer work. check /dev/disk/by-path/*scsi* too.
     fdisk = await get_output('fdisk', '-l', dev_path)
     for m in re.findall(r'Disk model: (\S+)', fdisk):
         if m != 'VIRTUAL-DISK':
--- a/pi-setup/tasks.py	Mon Sep 16 20:11:34 2024 -0700
+++ b/pi-setup/tasks.py	Mon Sep 23 00:32:36 2024 -0700
@@ -12,6 +12,7 @@
 
 @task
 def setup_pi(ctx, hostname, serial):
+    ctx.run("qemu-img --version") # fail fast
     ctx.run(cmd + f'pdm run -p .. setup_pi.py {hostname} {serial}', pty=True)
 
 
--- a/templates/dnsmasq/hosts.j2	Mon Sep 16 20:11:34 2024 -0700
+++ b/templates/dnsmasq/hosts.j2	Mon Sep 23 00:32:36 2024 -0700
@@ -27,7 +27,7 @@
 10.5.0.5   dash5.bigasterisk.com
 10.5.0.6   slash5.bigasterisk.com
 10.5.0.7   ditto5.bigasterisk.com
-10.5.0.14  garage5.bigasterisk.com
+10.5.0.14  ga-iot5.bigasterisk.com
 10.5.0.17  frontbed5.bigasterisk.com
 10.5.0.30  dot5.bigasterisk.com
 10.5.0.31  ws-printer5.bigasterisk.com
@@ -52,7 +52,7 @@
 10.5.0.5   dash.bigasterisk.com
 10.5.0.6   slash.bigasterisk.com
 10.5.0.7   ditto.bigasterisk.com
-10.5.0.14  garage.bigasterisk.com
+10.5.0.14  ga-iot.bigasterisk.com
 10.5.0.17  frontbed.bigasterisk.com
 10.5.0.30  dot.bigasterisk.com
 10.5.0.110 plus.bigasterisk.com
--- a/templates/wireguard/wg0.conf.j2	Mon Sep 16 20:11:34 2024 -0700
+++ b/templates/wireguard/wg0.conf.j2	Mon Sep 23 00:32:36 2024 -0700
@@ -13,13 +13,13 @@
     {{ peer_block('bang',        '10.5.0.1/32') }}
     {{ peer_block('dash',        '10.5.0.5/32') }}
     {{ peer_block('dot',         '10.5.0.30/32') }}
-    {{ peer_block('garage',      '10.5.0.14/32') }}
     {{ peer_block('pipe',        '10.5.0.3/32') }}
     {{ peer_block('prime',       '10.5.0.0/24', 'public.bigasterisk.com:1195', 50) }}
     {{ peer_block('slash',       '10.5.0.6/32') }}
     {{ peer_block('ws-printer',  '10.5.0.31/32') }}
     {{ peer_block('gn-music',    '10.5.0.32/32') }}
     {{ peer_block('li-drums',    '10.5.0.33/32') }}
+    {{ peer_block('ga-iot',      '10.5.0.14/32') }}
 {% elif host.name == 'prime' %}
 # this list is wg_roamer & ditto & phone:
     {{ peer_block('ditto',       '10.5.0.0/24') }}
--- a/users.py	Mon Sep 16 20:11:34 2024 -0700
+++ b/users.py	Mon Sep 23 00:32:36 2024 -0700
@@ -10,7 +10,7 @@
 drewp_groups = [
     'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video', 'plugdev',
     'games', 'users', 'netdev', 'i2c', 'input', 'spi', 'gpio', 'fuse',
-    'docker', 'render', 'mongodb', 'lpadmin'
+    'render', 'mongodb', 'lpadmin'
 ]
 
 for group in [
@@ -20,7 +20,6 @@
         'i2c',
         'input',
         'netdev',
-        'docker',
         'render',
         'lpadmin',
 ]:
@@ -36,11 +35,11 @@
     server.user(user=svc, uid=svcIds, group=svc)
     svcIds += 1
 
+# the following gets scrambled on new rpi.  Run "useradd -u 1501 drewp" as workaround.
 server.group(group='drewp', gid=drewp_gid)
 # this won't change existing drewp uid; I've been doing that myself.
 server.user(user='drewp', uid=drewp_uid, group='drewp', groups=drewp_groups)
 
-
 if 'pi' not in host.groups:
     server.group(group='adm', gid=4)
     server.group(group='cdrom', gid=24)
@@ -50,10 +49,7 @@
     # prime has something on 109
     server.group(group='lpadmin', gid=200)
     server.group(group='plugdev', gid=46)
-    server.group(group='docker', system=True)
 
-    server.group(group='damon', gid=3011)
-    server.group(group='ffg', gid=3008)
 
     server.user(user='drewp',
                 uid=drewp_uid,
@@ -70,11 +66,6 @@
                 group=name,
                 groups=['audio', 'dialout', 'docker', 'lp', 'lpadmin', 'sudo', 'video'])
 
-    server.user(user='ffg', uid=3013, group='ffg')
-
-    server.user(user='darcsweb')
-
-    server.user(user='newsbru', uid=1019)
     server.user(user='dmcc', uid=1013)
 
     server.group(group='elastic', gid=3018)
@@ -88,15 +79,3 @@
 
     server.group(group='prometheus', gid=1010)
     server.user(user='prometheus', uid=1010)
-
-# delete when garage is diskless
-if host.name == 'garage':
-    server.group(group='fuse')
-    server.user(user='pi',
-                uid=1000,
-                group=7,
-                groups=[
-                    'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video',
-                    'plugdev', 'games', 'users', 'netdev', 'i2c', 'input',
-                    'spi', 'gpio', 'fuse', 'docker'
-                ])