Target Host Deployment
Goal
Make the bootstrap source bundle movable to a real lab or operations host with a deterministic install and preflight path.
Current deploy unit
The current repo still packages a bootstrap_source_bundle, but it now carries a target-host deploy chain:
bin/ran-installbin/ran-debug-latestbin/ran-deploy-wizardbin/ran-fetch-remote-artifactsbin/ran-ship-bundlebin/ran-remote-ranctlops/deploy/fetch_remote_artifacts.shops/deploy/install_bundle.shops/deploy/ship_bundle.shops/deploy/run_remote_ranctl.shops/deploy/preflight.shops/deploy/systemd/ran-dashboard.serviceops/deploy/systemd/ran-host-preflight.serviceconfig/prod/topology.single_du.target_host.rfsim.json.exampleexamples/ranctl/precheck-target-host.json.example
Expected host layout
- install root:
/opt/open-ran-agent - current checkout symlink:
/opt/open-ran-agent/current - operator config root:
/etc/open-ran-agent - staged systemd units:
/opt/open-ran-agent/systemd
Host flow
- Build a bundle with
mix ran.package_bootstrap --bundle-id <bundle_id>. - Copy
open_ran_agent-<bundle_id>.tar.gzandinstall_bundle.shto the target host. - Run
./install_bundle.sh ./open_ran_agent-<bundle_id>.tar.gz /opt/open-ran-agent. - Run
/opt/open-ran-agent/current/bin/ran-installfor the easiest setup path. - Or run
/opt/open-ran-agent/current/bin/ran-deploy-wizard --skip-installfor the guided setup path. - Or open
bin/ran-dashboardand useDeploy Studioto preview the same files underartifacts/deploy_preview/*before touching host paths. - Or edit:
/etc/open-ran-agent/topology.single_du.target_host.rfsim.json/etc/open-ran-agent/requests/precheck-target-host.json/etc/open-ran-agent/ran-dashboard.env/etc/open-ran-agent/ran-host-preflight.env/etc/open-ran-agent/deploy.profile.json/etc/open-ran-agent/deploy.effective.json/etc/open-ran-agent/deploy.readiness.json
- Run
/opt/open-ran-agent/current/bin/ran-host-preflight. - Start
/opt/open-ran-agent/current/bin/ran-dashboardor install the staged systemd units.
Remote handoff path
From the packaging host, operators can now render a bounded remote handoff plan:
- Run
bin/ran-install --target-host <host>for the shortest path. - Or run
bin/ran-deploy-wizard --defaults --skip-install --target-host <host>or use Deploy Studio.- use
--safe-previewon the packaging host to stage files underartifacts/deploy_preview/*instead of/etc/open-ran-agent - choose a deploy profile such as
stable_ops,troubleshoot, orlab_attach - review
deploy.readiness.jsonbefore you hand the bundle to a remote host - review
artifacts/deploy_preview/quick_install/*/INSTALL.mdand the generatedinstall.*.shhelpers
- use
- Review the generated
scpandsshcommands. - Run
bin/ran-ship-bundle <bundle-tarball> <host>for a dry-run summary.- when
artifacts/deploy_preview/etcexists, the handoff also syncs topology, request, and env files to the remote config root
- when
- Set
RAN_REMOTE_APPLY=1to execute the transfer and remote install steps. - Use
RAN_REMOTE_APPLY=1 bin/ran-remote-ranctl <host> precheck|plan|apply|verify <request-file>to drive remoteranctl, capture stdout locally underartifacts/remote_runs/*, and auto-fetch matching remote evidence intoartifacts/remote_runs/*/fetch. - Use
RAN_REMOTE_APPLY=1 bin/ran-fetch-remote-artifacts <host> <request-file>to re-sync remote evidence on demand. - Use
bin/ran-debug-latest --failures-onlyto jump to the newest failed install/remote run and itsdebug-summary.txt/debug-pack.txt.
For the detailed failure triage path, see 14-debug-and-evidence-workflow.md.
Scope
This path is enough for:
- moving the repo bundle to a real host
- loading a host-specific topology file
- running a bounded native and OAI precheck on that host
- bringing up the dashboard with host-specific env vars
- previewing deploy files and preflight output from the dashboard via
/api/deploy/* - exporting a profile manifest and effective merged config before remote handoff
- exporting a readiness artifact with rollout score, blockers, warnings, and recommendation
- exporting quickstart command files and an install guide for operator handoff
- exporting debug summaries, debug packs, and transcripts beside each install or remote run
- generating remote
scp/ssh/install/preflightcommands for a target host - mirroring target-host artifacts, runtime evidence, and config snapshots back to the packaging host
This path is not yet:
- a compiled BEAM release
- a container image distribution flow
- a full UE attach plus ping validation