cockpit-headless-deploy · git:20260822.6efef64 · 2026-08-22 · sha256 7822c99cf96b401b
cockpit-headless-deploy git:20260822.6efef64A
Immutable. This exact content is served forever at /api/v1/blob/7822c99cf96b401b.
--- namespace: aiwg name: cockpit-headless-deploy description: Guide or repair a headless Linux AIWG Cockpit plus Agentic Sandbox deployment when host topology, SSH access, service persistence, or runtime readiness must be planned safely. platforms: [all] script: entrypoint: scripts/headless-plan.mjs runtime: node cwd: project-root argsHint: "plan|stage|rollback --manifest <setup.aiwg.yaml> --cockpit-host <host> [--executor-host <host>]" --- # Cockpit Headless Deployment Own the guided deployment or repair of Cockpit and Agentic Sandbox on a headless Linux host. The canonical installation contract is `https://aiwg.io/agentic-sandbox/setup.aiwg.yaml`; fetch or locate it, verify its release provenance when acquired remotely, and validate it with `aiwg setup-validate` before proposing mutation. Do not reproduce its package or installation action contract in this skill, and do not pass this provider-orchestrated manifest to deterministic `aiwg setup-run`. ## Topology gate Establish three facts separately: - the host running Cockpit and its Bridge; - the host running Agentic Sandbox; - the operator host and its access path to the Bridge. If the executor host is neither proven equal to nor explicitly different from the Cockpit host, stop before mutation and ask exactly one question: > Will Agentic Sandbox run on the Cockpit host `<host>`, or a different host? After the answer, record `same-host` or `cross-host`. Model operator-to-Bridge access separately from Bridge-to-executor transport. A cross-host deployment requires an explicit trusted transport plan; never infer a forward from an ambiguous hostname. ## Preview and authorization Run the bundled planner after manifest validation: ```bash aiwg run skill cockpit-headless-deploy -- plan \ --manifest setup.aiwg.yaml \ --cockpit-host <host> \ --executor-host <host> \ --operator-host <host> ``` Review its value-free preview of packages (owned by the manifest), services, ports, runtime tiers, mounts, egress, persistence, and cleanup. All application listeners default to `127.0.0.1`. Require explicit operator authorization immediately before packages, services, tunnels, mounts, or host policy change. Preserve dirty source checkouts; prefer verified release packages or a clean clone. Do not replace or clean an existing checkout to make deployment easier. ## Deployment Apply the validated SetupManifest through the provider-orchestrated installer handoff. Use `stage` only to materialize the value-free user-service plan and attempt ledger inside an explicitly chosen staging root; review those files before installing them as user units. Host and Docker readiness are independent requirements. Claim VM readiness only when KVM evidence exists. Keep Cockpit/Bridge and executor listeners on loopback. For cross-host topologies, bind both applications locally and add only the reviewed transport between the declared endpoints. Order the Cockpit user unit after the executor unit when they share a host, enable only the created units, and record every created or changed resource in the attempt ledger. ## Verification and rollback Run `aiwg cockpit doctor` with the declared topology and hosts. Do not report success until its package, Bridge, real-executor, host, Docker, listener, and persistence rows meet the selected runtime plan. A VM row may remain a warning when VM isolation was not selected. On failure, restore only resources marked as created or changed by this attempt. The bundled `rollback` command removes only ledger-owned staged files; it refuses paths outside the recorded staging root. Never perform generic container, image, VM, worktree, package-cache, or data-directory cleanup.