scaleway/netbox2netshot
Rust
Captured source
source ↗scaleway/netbox2netshot
Description: Inventory synchronization tool between Netbox and Netshot
Language: Rust
License: Apache-2.0
Stars: 48
Forks: 3
Open issues: 2
Created: 2021-04-26T16:54:06Z
Pushed: 2025-01-30T14:59:23Z
Default branch: master
Fork: no
Archived: no
README:
Netbox2Netshot
Introduction
Netbox2Netshot is a tool that allows you to synchronize your Netbox DCIM (using specific criterias) to Netshot so your devices would automatically get backed up by Netshot once added in Netbox.
The tool is coded in Rust and doesn't required any runtime dependency installed
How to use
Installation
Gather a pre-built binary, deb or rpm package or install it using Cargo
cargo install netbox2netshot
Parameters
Most parameters can be set either via command line arguments or environment variables
netbox2netshot [FLAGS] [OPTIONS] --netbox-url --netshot-domain-id --netshot-token --netshot-url FLAGS: -c, --check Check mode, will not push any change to Netshot -d, --debug Enable debug/verbose mode -h, --help Prints help information -V, --version Prints version information OPTIONS: --netbox-devices-filter The querystring to use to select the devices from netbox [env: NETBOX_DEVICES_FILTER=] [default: ] --netbox-proxy HTTP(s) proxy to use to connect to Netbox [env: NETBOX_PROXY=] --netbox-tls-client-certificate The TLS certificate to use to authenticate to Netbox (PKCS12 format) [env: NETBOX_TLS_CLIENT_CERTIFICATE=] --netbox-tls-client-certificate-password The optional password for the netbox PKCS12 file [env: NETBOX_TLS_CLIENT_CERTIFICATE_PASSWORD=] --netbox-token The Netbox token [env: NETBOX_TOKEN] --netbox-url The Netbox API URL [env: NETBOX_URL=] --netbox-vms-filter The querystring to use to select the VM from netbox [env: NETBOX_VMS_FILTER=] --netshot-domain-id The domain ID to use when importing a new device [env: NETSHOT_DOMAIN_ID=] --netshot-proxy HTTP(s) proxy to use to connect to Netshot [env: NETSHOT_PROXY=] --netshot-tls-client-certificate The TLS certificate to use to authenticate to Netshot (PKCS12 format) [env: NETSHOT_TLS_CLIENT_CERTIFICATE=] --netshot-tls-client-certificate-password The optional password for the netshot PKCS12 file [env: NETSHOT_TLS_CLIENT_CERTIFICATE_PASSWORD=] --netshot-token The Netshot token [env: NETSHOT_TOKEN] --netshot-url The Netshot API URL [env: NETSHOT_URL=]
The query-string format need to be like this (url query string without the ?):
status=active&platform=cisco-ios&platform=cisco-ios-xe&platform=cisco-ios-xr&platform=cisco-nx-os&platform=juniper-junos&has_primary_ip=true&tenant_group=network
If you plan to use TLS authentication, please provide a PKCS12 formatted identity file (.pfx or .p12), they can be created from .pem/.key/.crt using the following command:
openssl pkcs12 -export -out my.pfx -inkey my.key -in my.crt
Excerpt shown — open the source for the full document.