netbox-cli-0.3.0 is not a library.
netbox-cli
full-featured cli for the netbox api. covers standard crud resources and a raw mode for any endpoint.
install
from crates.io:
cargo install netbox-cli
from this repo:
cargo install --path crates/netbox-cli
quickstart
netbox-cli --url https://netbox.example.com --token $TOKEN dcim devices list
auth
required:
or set:
resources
list resource groups:
netbox-cli resources
netbox-cli resources dcim
common commands
list:
netbox-cli dcim devices list
netbox-cli ipam prefixes list
netbox-cli vpn tunnels list
get by id:
netbox-cli dcim devices get 42
create/update with json:
netbox-cli circuits circuits create --json '{"cid":"CIR-1001","provider":1,"type":1}'
netbox-cli virtualization virtual-machines update 42 --file vm-update.json
output formats
netbox-cli dcim devices list --output json
netbox-cli dcim devices list --output yaml
netbox-cli dcim devices list --output table
select a field with a dot path:
netbox-cli dcim devices list --select results
netbox-cli dcim devices list --select results.name
table output flattens paginated responses by showing the results rows and a summary line with count/next/previous when present.
dry run
print the request for write operations without sending them:
netbox-cli dcim devices create --json '{"name":"switch-01","device_type":1,"role":1,"site":1}' --dry-run
raw requests
use raw for any endpoint:
netbox-cli raw --method GET --path dcim/devices/ --query "name=leaf-1" --query "limit=5"
netbox-cli raw --method POST --path ipam/vrfs/ --json '{"name":"blue","rd":"65000:100"}'
notes:
--path is api-relative, e.g. dcim/devices/
- a leading
api/ is stripped if present
- repeat
--query key=value for multiple params
graphql
read-only graphql queries:
netbox-cli graphql --query '{ devices { name } }'
netbox-cli graphql --query-file ./query.graphql --vars '{"limit":5}'
special endpoints
netbox-cli extras-dashboard get
netbox-cli core-background-queues list
netbox-cli users-config
netbox-cli plugin-branch-action 1 merge --json '{"commit":true}'
ipam availability
list and create from available pools:
netbox-cli ipam-prefix-available-ips 42 list
netbox-cli ipam-prefix-available-ips 42 create --json '[{"description":"allocated"}]'
netbox-cli ipam-prefix-available-prefixes 42 list
netbox-cli ipam-range-available-ips 10 list
netbox-cli ipam-vlan-group-available-vlans 5 list
netbox-cli ipam-asn-range-available-asns 3 list
background task management
control background tasks:
netbox-cli core-task-action abc123 enqueue
netbox-cli core-task-action abc123 stop
netbox-cli core-task-action abc123 requeue
netbox-cli core-task-action abc123 delete
netbox-cli core-data-source-sync 7
sync and render operations
sync config contexts, templates, and render configs:
netbox-cli extras-config-context-sync 5
netbox-cli extras-config-context-profile-sync 3
netbox-cli extras-config-template-sync 2
netbox-cli extras-config-template-render 2
netbox-cli extras-export-template-sync 1
netbox-cli extras-custom-field-choices 4
circuit and cable paths
get path information for terminations:
netbox-cli circuits-termination-paths 10
netbox-cli circuits-virtual-termination-paths 5
dcim trace
trace cable paths through infrastructure:
netbox-cli dcim-trace interface 99
netbox-cli dcim-trace console-port 10
netbox-cli dcim-trace console-server-port 5
netbox-cli dcim-trace power-port 20
netbox-cli dcim-trace power-outlet 15
netbox-cli dcim-trace power-feed 8
vm config rendering
render configuration for virtual machines:
netbox-cli virtualization-render-config 42
output
responses are json, pretty-printed to stdout. errors return non-zero exit codes.
exit codes:
0 success
1 request or parsing error
2 invalid command or arguments
errors include http status, path, and request id when available.
help
netbox-cli --help
netbox-cli dcim --help