Configure and operate Orb Agent for automated network discovery into NetBox. Use when writing agent.yaml configs, setting up network/device/SNMP/worker discovery backends, deploying Orb Agent containers, managing policies and secrets, or troubleshooting discovery pipelines.
Configure and operate Orb Agent for automated network discovery into NetBox. Use when writing agent.yaml configs, setting up network/device/SNMP/worker discovery backends, deploying Orb Agent containers, managing policies and secrets, or troubleshooting discovery pipelines.
license
Apache-2.0
NetBox Discovery (Orb Agent)
Your knowledge of Orb Agent may be outdated. Discovery backends, configuration options, and supported platforms change between releases. Prefer retrieval over pre-trained knowledge.
If configured — verify discovered objects in NetBox
Post-discovery validation
Introduction
Orb Agent is a Docker-based network discovery agent that automatically discovers infrastructure and ingests it into NetBox via Diode. It supports four discovery backends — network (NMAP), device (NAPALM), SNMP, and custom worker — each configurable through a single YAML file.
Data flow: Orb Agent → gRPC → Diode Server → Diode NetBox Plugin → NetBox
Prerequisites: NetBox 4.5+ (covers 4.5.x–4.6.x), Diode server deployed, diode-netbox-plugin installed in NetBox. This skill targets orb-agent v2.9.x.
Ingesting the NetBox 4.6 models (CableBundle, RackGroup, VirtualMachineType) — e.g. from switch-stack discovery — requires a NetBox 4.6 install with a matching Diode plugin/SDK.
For Diode SDK usage and custom ingestion patterns, see netbox-diode.
Quick Reference
Minimal agent.yaml
orb:config_manager:active:localbackends:common:diode:target:grpc://diode-server:8080/diode# Cloud/Enterprise: https://your-instance.netboxcloud.com/diodeclient_id:${DIODE_CLIENT_ID}client_secret:${DIODE_CLIENT_SECRET}agent_name:my-agentnetwork_discovery:# Enable desired backendsdevice_discovery:snmp_discovery:policies:# Backend-specific policies go here
Docker Run
docker run --net=host \
-v ${PWD}:/opt/orb/ \
-e DIODE_CLIENT_ID -e DIODE_CLIENT_SECRET \
netboxlabs/orb-agent:latest run -c /opt/orb/agent.yaml
Both config_manager and secrets_manager use the same shape: an active: key naming the source, and a sources: map of source configs.
local — Policies defined in the same YAML file. Simplest setup.
git — Polls a Git repo for policies. Configured under sources.git with url:, branch:, auth: (a string: basic or ssh), username:/password: (basic) or private_key: (ssh), and skip_tls:. The repo needs a root selector.yaml that matches agents to policy files.
config_manager:active:gitsources:git:url:"https://github.com/org/policies.git"# NOT "repo:"branch:mainauth:basic# string, NOT auth.typeusername:orbpassword:${GIT_TOKEN}skip_tls:false
The agent matches selectors against its top-level orb.labels (not backends.common.agent_labels, which are telemetry labels only). See references/deployment-patterns.md for the selector.yaml format.
Secrets Manager
Same active: + sources: shape. orb-agent v2.9 ships four providers:
Switch-stack / Virtual Chassis — when a target is a switch stack, discovery emits one VirtualChassis entity plus one Device per member and routes interfaces/IPs to the owning member (Cisco IOS, Juniper, Aruba CX, HP Comware, Brocade FastIron, Huawei VRP)
netbox_id per-target scope option for matching an existing device by PK
SNMP Discovery
Discovers devices and interfaces via SNMP polling.
Scope: Hosts (IPs, subnets, ranges) with per-target or policy-level authentication.
Runs custom Python packages that use the Diode Python SDK to ingest any entity type.
Config:package (required — Python package name), schedule.
Scope: Freeform (list or map — defined by the package).
Custom packages: Use INSTALL_WORKERS_PATH env var + workers.txt.
Omit schedule for run-once execution. Schedule format is standard cron.
Deployment
Docker (recommended)
docker run --net=host \
-v ${PWD}:/opt/orb/ \
-e DIODE_CLIENT_ID -e DIODE_CLIENT_SECRET \
netboxlabs/orb-agent:latest run -c /opt/orb/agent.yaml
--net=host is needed for NMAP raw socket scans. Alternative: -u root.
Podman
Privileged:sudo podman run --privileged --net=host ...
Rootless: No sudo, but restricted to TCP connect scans only.
System Requirements
Resource
Minimum
Recommended
CPU
2 cores
4 cores
Memory
1.5 GB
2 GB
Disk
1 GB
2 GB
Docker 20.10+ / Podman 4.0+. Linux x86_64/arm64 fully supported; macOS/Windows limited (no host networking).
Git-based Multi-Agent Management
For fleet deployments, use Git config manager with a central repo containing selector.yaml that matches agent labels to policy files. Agents poll on a cron schedule for config changes.