# Netbox agent This project aims to create hardware automatically into [Netbox](https://github.com/netbox-community/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` and `file` 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[A-Za-z0-9]+)" # driver: 'cmd:lldpctl' # regex = 'SysName: .*\.(?P[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`'s `Inventory` - [ ] `CustomFields` support with firmware versions for Device (BIOS), RAID Cards and disks