Netbox is an open-source Django application that is designed to help manage and document networks and the devices on those networks. In the CSL we use it to document each machine and VM along with their network configurations.
Netbox consists of 4 parts:
Netbox Django Application
HTTP Proxy and Daemon
Basic installation instructions are here.
netbox Ansible playbook properly installs and configures everything as well.
Netbox graciously created an upgrade script that automatically upgrades the current installation.
netbox and run the following:
Once the script finishes, make sure to restart the
supervisorctl restart netboxsupervisorctl restart netbox-rqworker
You can access the netbox web page at https://netbox.tjhsst.edu, but you MUST be VPN'ed into the CSL in order to access the website.
In order to edit any content on netbox, you must have an user account on netbox. Unfortunately, netbox does not support generic oauth at the moment, so users are authenticated against the netbox's
postgres database through the django authentication framework. You can create user accounts in two ways:
Through the admin interface at https://netbox.tjhsst.edu/admin , (requires another sysadmin to log in with their admin account)
manage.py createsuperuser directly on the
Using netbox is pretty straightforward; navigating through the web page is pretty intuitive. More specific documentation on netbox is available here, but here are a few basics:
The highest order of organization is a
region, it represents the physical area where the network is (TJHSST , CSL).
Next there are
sites, they represent the specific area in the
region that divides the network (Machine Room, Room 200, Room 200C, etc.).
site can have
racks, which represent a physical server rack (only used in the Machine Room
devices are the next organizational unit.
devices are NOT VMs.
devices can belong to a
rack(in the case of servers), or they can be independent (in the case of workstations).
interfaces which can be assigned an
ips is not obvious, though.
First you have to create a
then on that
device's overview page, click the "Add Components" dropdown and select "Interfaces".
Then fill out the information for that
Finally, when the
interface is created, scroll to the bottom of the
device's overview page and click the green "+" box and add an
Some (messy) scripts that were used to bulk create the
borg devices and workstations are available at https://gitlab.tjhsst.edu/sysadmins/docs/netbox-scripts.git