Netbox agent to run on your infrastructure's servers
e9f708c28c
Device update |
||
---|---|---|
netbox_agent | ||
tests | ||
.gitignore | ||
dev-requirements.txt | ||
LICENSE | ||
netbox_agent.yaml.example | ||
README.md | ||
requirements.txt | ||
setup.py | ||
tox.ini |
Netbox agent
This project aims to create hardware automatically into Netbox based on standard tools (dmidecode, lldpd, parsing /sys/, etc).
The goal is to generate an existing infrastructure on Netbox and have the ability to update it regularly by executing the agent.
Features
- Create servers, chassis and blade through standard tools (
dmidecode
) - Create physical network interfaces with IPs
- Generic ability to guess datacenters through drivers (
cmd
andfile
and custom ones)
Known limitations
- The project is only compatible with Linux.
Since it uses
ethtool
and parses/sys/
directory, it's not compatible with *BSD distributions.
Configuration
netbox:
url: 'http://netbox.internal.company.com'
token: supersecrettoken
datacenter_location:
# driver_file: /opt/netbox_driver_dc.py
driver: file:/etc/qualification
regex: "datacenter: (?P<datacenter>[A-Za-z0-9]+)"
# driver: 'cmd:lldpctl'
# regex = 'SysName: .*\.(?P<datacenter>[A-Za-z0-9]+)'```
Hardware
Tested on:
Dell Inc.
Blades
- PowerEdge M1000e
- PowerEdge M640
- PowerEdge M630
- PowerEdge M620
- PowerEdge M610
Pizzas
- DSS7500
HP
Blades
- HP BladeSystem c7000 Enclosure G2
- HP ProLiant BL460c Gen8
- HP ProLiant BL460c Gen9
Pizzas
- ProLiant DL380p Gen8
HPE
- HPE ProLiant XL450 Gen10
TODO
- Handle blade moving
- Handle network cards (MAC, IP addresses)
- Handle switch <> NIC connections (using lldp)
- Handle blade and server local changes (new NIC, new RAM, etc) using somekind of diff
- CPU, RAID Card(s), RAM, Disks in
Device
'sInventory
CustomFields
support with firmware versions for Device (BIOS), RAID Cards and disks