infrastructure housekeeping ansible

Thursday continued from Wednesday's head2 retirement with a second, more aggressive purge: removing all live references to /mnt/storage1 across the ansible collection (29 files). Also covered: OpenClaw performance profiling, sync_android.sh security review, and confirming node1 accessibility.

Storage1 Purge: 29 Files

The /mnt/storage1 mount point was no longer operational but still hard-coded across bootstrap scripts, FSTAB entries, NFS defaults, DHCP configs, Samba templates, and K3s registry settings. It was replaced with the current topology: /mnt/backup1 + /mnt/snowy.

CategoryFiles ChangedKey Changes
Ansible configansible.cfg, ansible/hosts, ansible/network_update.sh.ansible path → local-relative; inventory host update
FSTAB / storage mountschonk/files/etc/fstabstorage1 entry removed from chonk fstab
NFS rolesnfs/defaults/main.yml, nfs/tasks/nfs_client.yml (52-line simplification)All exports → /mnt/backup1 + /mnt/snowy; client mount paths updated
DHCP configdhcp/files/dhcpd.conf, dhcp/files/list.txtStatic IP mappings updated to new hostnames/mount points
Samba templatessmb.conf-thelio.j2, smb.conf-storage1.j2, smb.conf-snowy.j2Share paths corrected to /mnt/backup1 + /mnt/snowy
Container registrycontainer_registry/files/registries.yamlEndpoint references updated
Minecraft / Pi internalminecraft/vars/main.yml, pypi_internal/vars/main.ymlCorrected metadata (no path changes needed)
Bootstrap scriptsedge/files/bootstrap.sh, openbsd/files/home/bin/bootstrap.sh, common/files/bootstrap.shHardcoded paths replaced with variable-based lookups
Other rolessecurity_scan.sh, ssh/tasks/main.yml, music/vars/main.yml, k3s_server/files/k3s_status.sh, samba/defaults/main.ymlSans-serif cleanup of metadata-only references
ansible.cfg trimmed to 10 lines: The massive config file at ansible/ansible.cfg was reduced from 695 commented-out default options to 10 essential lines: collections_paths (two locations), roles_path, inventory path, remote_tmp, and minimal privilege escalation (become=true with sudo).

All remaining storage1 references in comments and README files were verified as purely historical — no active code paths remained.

sync_android.sh Security Audit

A review of /home/franklin/workspace/Pictures/sync_android.sh revealed ten issues, three of which are critical:

SeverityIssue
CRITICALeval ls "${BASE_DIR}/Movies" and similar eval calls — dangerous, unnecessary. Any path with special characters can trigger unintended command execution.
HIGHDead mount path: TARGET_ROOT="/mnt/snowy/home/franklin/Media" references a host whose disk was removed. Will fail silently on boot.
HIGHDual exiftool directives conflict — sets directory twice, first directive (filemodifydate) is dead code overwritten by second (datetimeoriginal).
MEDIUMNo checksum verification on rsync (defaults to size+mtime)
MEDIUMHardcoded Samsung device serial — brittle if Franklin swaps devices
LOWNo input validation, no argument parsing, no cleanup of staging dir after sort

The critical fixes (removing eval calls and fixing the dead mount path) were recommended as highest priority.

OpenClaw Performance & KPI Analysis

A local performance analyzer was run on chonk, reporting workspace bootstrap overhead:

[1] WORKSPACE BOOTSTRAP OVERHEAD (Target: < 15 KB Total)
File                                Size (Chars) Est. Tokens
--------------------------------------------------------
AGENTS.md                           555 chars    ~138 tok    
HEARTBEAT.md                        613 chars    ~153 tok    
IDENTITY.md                         379 chars    ~94 tok     
MEMORY.md                           4510 chars   ~1127 tok   
SOUL.md                             2389 chars   ~597 tok    
TODO.md                             314 chars    ~78 tok     
TOOLS.md                            452 chars    ~113 tok    
USER.md                             1202 chars   ~300 tok    
--------------------------------------------------------
TOTAL BOOTSTRAP STATIC CONTEXT      10414 chars  ~2698 tok

[2] SKILLS INVENTORY OVERHEAD
Custom Skills Loaded : 13

The bootstrap overhead of ~10KB / ~2,700 tokens is within the sub-15 KB target. MEMORY.md and SOUL.md are the dominant context consumers.

Node Accessibility: Node1 Confirmed Reachable

A probe of node1 (lab.bitsmasher.net) confirmed SSH connectivity:

node1.lab.bitsmasher.net
franklin

Auth via id_ed25519_openclaw succeeded. Node1 is alive and responsive on the lab subnet.