NetBox es una herramienta de código abierto que sirve para administrar redes informáticas. Está escrita en el framework Django Python.
Con Netbox puedes monitorear y administrar direcciones IP, racks, dispositivos, redes, consolas, conexiones de red, máquinas virtuales, clústeres y secretos desde la interfaz web.
En este tutorial te explicamos cómo instalar y configurar NetBox en Debian 10.
Requisitos
• Un servidor corriendo con Debian 10.
• Una contraseña de root establecida en tu servidor.
• Una IP estática 192.168.0.2 configurada en tu servidor.
Instala las Dependencias Requeridas
Antes de empezar, necesitarás instalar algunas de las dependencias requeridas por Netbox. Puedes instalarlas con el siguiente comando:
# apt-get install -y nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
Después de instalar todas las dependencias, puedes proceder a instalar el servidor PostgreSQL.
Instala y Configura PostgreSQL
NetBox utiliza PostgreSQL para almacenar sus datos. Así que necesitarás instalarlo en tu servidor. Puedes hacerlo ejecutando el siguiente comando:
# apt-get install postgresql postgresql-contrib -y
Una vez instalado, entra en el shell de PostgreSQL y crea una base de datos y un usuario para Netbox:
su - postgres postgres@debian:~$ psql postgres=# CREATE DATABASE netboxdb; postgres=# CREATE USER netboxuser WITH PASSWORD 'password';
Después, concede todos los privilegios a la base de datos de NetBox y sal de PostgreSQL con el siguiente comando:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netboxuser;
postgres=# exit
Instala y Configura NetBox
Primero, necesitarás descargarte la última versión de NetBox del repositorio de Git.
# cd /opt/
# git clone -b master https://github.com/digitalocean/netbox.git
Una vez descargado. cambia el directorio a Netbox y genera la llave SECRETA de Django con el siguiente comando:
# cd /opt/netbox/netbox/
# ./generate_secret_key.py
Deberías ver el siguiente resultado:
YS-&Jt%X6LOkDMhw8IKxpbe(NEjBT5nyUiGF1c0v_u4)saHR29
Después, cambia el directorio a Netbox y renombra el archivo de ejemplo de configuración:
# cd netbox
# mv configuration.example.py configuration.py
A continuación, abre el achivo de configuración de Netbox y define los detalles de la base de datos:
# nano configuration.py
Cambia las siguientes líneas:
# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['192.168.0.2']
# PostgreSQL database configuration.
DATABASE = {
'NAME': 'netboxdb', # Database name
'USER': 'netboxuser', # PostgreSQL username
'PASSWORD': 'password', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
SECRET_KEY = 'YS-&Jt%X6LOkDMhw8IKxpbe(NEjBT5nyUiGF1c0v_u4)saHR29'
Guarda y cierra el archivo cuando hayas terminado. Entonces, instala todas las dependencias requeridas por NetBox con el siguiente comando:
# pip3 install -r /opt/netbox/requirements.txt
Después, migra la base de datos con el siguiente comando:
# cd /opt/netbox/netbox/
# python3 manage.py migrate
Después, crea un usuario Admin para NetBox con el siguiente comando:
# python3 manage.py createsuperuser
Proporciona el nombre de usuario y la contraseña deseados para crear un usuario Admin como se muestra más abajo:
Username (leave blank to use 'root'): netboxuser
Email address: admin@clouding.io
Password:
Password (again):
Superuser created successfully.
Después, carga los datos iniciales y mueve el archivo estático con el siguiente comando:
# python3 manage.py collectstatic
# python3 manage.py loaddata initial_data
Instala y Configura Gunicorn y Supervisor
Primero, instala Gunicorn utilizando el siguiente comando:
# pip3 install gunicorn
Una vez instalado, crea un nuevo archivo de configuración para NetBox:
#nano /opt/netbox/gunicorn_config.py
Añadiremos el código:
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'
Guarda y cierra el archivo. Después crea un archivo de configuración Supervidor para gestionar el servicio NetBox:
# nano /etc/supervisor/conf.d/netbox.conf
Añade las siguientes líneas:
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
Guarda el archivo. Después, reinicia el servicio Supervisor con el siguiente comando:
# systemctl restart supervisor
Después, habilita el servicio Supervisor para encender en caso de arranque con el siguiente comando:
# systemctl enable supervisor
Configura Nginx como Reverse Proxy para NetBox
NetBox está ya configurado y activo en el puerto 8001. Ahora necesitarás configurar Nginx como reverse proxy para pasar las peticiones que vengan del puerto 80 al 8001.
Para conseguir esto, crea un archivo huésped virtual Nginx con el siguiente comando:
# nano /etc/nginx/sites-available/netbox.conf
Añade las siguientes líneas:
server {
listen 80;
server_name 192.168.0.2;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://192.168.0.2:8001;
}
}
Guarda el archivo. Después comprueba Nginx para cualquier error de sintaxis con el siguiente comando:
# nginx -t
Después habilita el archivo huésped virtual Nginx con el siguiente comando:
# ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Después, reinicia Nginx para aplicar todos los cambios de configuración:
# systemctl restart nginx
Accede a NetBox Web UI
Ahora, abre tu navegador y visita la URL http://192.168.0.2. Serás redirigido a la siguiente página:
Haz clic en el botón de “Login”. Deberías ver la página de login de NetBox:
Proporciona tu nombre de usuario admin y contraseña de Netbox, luego haz clic en el botón de Login. Deberías ver la siguiente página:
¡Enhorabuena! Ya tienes instado NetBox y listo para ser usado 🙂