2019-08-02 18:34:35 +02:00
|
|
|
# Netbox agent
|
|
|
|
|
2019-08-02 18:32:33 +02:00
|
|
|
|
|
|
|
This project aims to create hardware automatically into Netbox based on standard tools (dmidecode, lldpd, parsing /sys/, etc).
|
2019-08-04 15:20:57 +02:00
|
|
|
|
|
|
|
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)
|
|
|
|
|
2019-08-04 23:24:51 +02:00
|
|
|
# Known limitations
|
|
|
|
|
|
|
|
* The project is only compatible with Linux.
|
|
|
|
Since it uses `ethtool` and parses `/sys/` directory, it's not compatible with *BSD distributions.
|
|
|
|
|
2019-08-04 15:20:57 +02:00
|
|
|
# Configuration
|
|
|
|
|
2019-08-04 20:10:43 +02:00
|
|
|
```
|
|
|
|
netbox:
|
2019-08-04 15:20:57 +02:00
|
|
|
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]+)'```
|
|
|
|
```
|
2019-08-02 18:32:33 +02:00
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
# Hardware
|
|
|
|
|
2019-08-02 18:32:33 +02:00
|
|
|
Tested on:
|
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
## Dell Inc.
|
2019-08-02 18:32:33 +02:00
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
### Blades
|
2019-08-03 16:02:07 +02:00
|
|
|
|
2019-08-02 18:32:33 +02:00
|
|
|
* PowerEdge M1000e
|
|
|
|
* PowerEdge M640
|
|
|
|
* PowerEdge M630
|
|
|
|
* PowerEdge M620
|
|
|
|
* PowerEdge M610
|
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
### Pizzas
|
2019-08-03 16:02:07 +02:00
|
|
|
|
2019-08-02 18:32:33 +02:00
|
|
|
* DSS7500
|
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
## HP
|
|
|
|
|
2019-08-03 16:02:07 +02:00
|
|
|
### Blades
|
|
|
|
|
|
|
|
* HP BladeSystem c7000 Enclosure G2
|
|
|
|
* HP ProLiant BL460c Gen8
|
|
|
|
* HP ProLiant BL460c Gen9
|
|
|
|
|
|
|
|
### Pizzas
|
|
|
|
|
|
|
|
* ProLiant DL380p Gen8
|
2019-08-02 18:32:33 +02:00
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
## HPE
|
|
|
|
|
2019-08-03 16:02:07 +02:00
|
|
|
* HPE ProLiant XL450 Gen10
|
2019-08-02 18:32:33 +02:00
|
|
|
|
2019-08-02 18:34:35 +02:00
|
|
|
# TODO
|
|
|
|
|
2019-08-02 18:32:33 +02:00
|
|
|
- [ ] 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
|