|
D-112 ADOPTED: option (c) post-boot network provisioning (operator ruling)
Operator ruled (c): "C since it is the way people automate opnsense" -- prefer the mainstream automation path (the OPNsense REST API, as used by opn-cli and the Ansible OPNsense collection) over image-baking or a media-import trick. The rendered config (opnsense-config.xml.tmpl) is REUSED unchanged; only the DELIVERY mechanism changes. IMPLEMENTATION NOT STARTED -- deliberately. "Push the config over the API" is not actually reachable from a factory-default OPNsense, and the bootstrap sub-choices are unruled. Recorded in D-112 so the next session does not discover this the hard way: 1. NO ROUTE. Factory-default LAN is 192.168.1.1/24 on office1-local, an ISOLATED libvirt network with no host leg on virbr2 (measured). The WAN side is reachable at 172.30.1.126 but OPNsense blocks all inbound on WAN by default, so it is not a way in. 2. NO CREDENTIALED API. The REST API authenticates with an API key+secret (not the root password), minted via the GUI. SSH is disabled in the factory default. 3. OUR SERIAL IS WRITE-ONLY. The module attaches <serial type='file'> -- a one-way capture that cannot be typed into. An interactive console means type='pty' + virsh console (module change + recreate). Sub-choices B1 (how to reach it) and B2 (how to authenticate first) are left UNRULED in D-112 rather than picked. SELF-CORRECTION recorded: I had earlier described option (b) as making the ISO mechanism "work as designed, unchanged". That was over-claimed -- even with a read-only root the importer prompts with a 7s timeout and asks for a device name, so (b) may have been (d) in disguise. Logged so nobody revives (b) on my bad summary. Note a console LOGIN SHELL is not the rejected (d): (d) was rejected for racing the importer's 7s timeout; a login shell has no timing race. The config-ISO path (opnsense-build-config-iso.sh + harness, the module's config_seed volume + cdrom disk) is RETIRED but left in place -- it is inert, not harmful. Remove it in the same change that lands (c), not before. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y117t1F525ba9r1vXSBETk |
|---|
|
|
| docs/design-decisions.md |
|---|
| docs/session-ledger.md |
|---|