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-devDespué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 -yUna 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=# exitInstala 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/
# python3 ./generate_secret_key.pyDeberías ver el siguiente resultado:
YS-&Jt%X6LOkDMhw8IKxpbe(NEjBT5nyUiGF1c0v_u4)saHR29Después, cambia el directorio a Netbox y renombra el archivo de ejemplo de configuración:
# cd netbox
# mv configuration.example.py configuration.pyA continuación, abre el archivo de configuración de Netbox y define los detalles de la base de datos:
# nano configuration.pyCambia las siguientes líneas:
# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['192.168.0.2']
# PostgreSQL database configuration.
DATABASES = {
'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.txtDespués, migra la base de datos con el siguiente comando:
# cd /opt/netbox/netbox/
# python3 manage.py migrateDespués, crea un usuario Admin para NetBox con el siguiente comando:
# python3 manage.py createsuperuserProporciona 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_dataInstala y Configura Gunicorn y Supervisor
Primero, instala Gunicorn utilizando el siguiente comando:
# pip3 install gunicornUna vez instalado, crea un nuevo archivo de configuración para NetBox:
# nano /opt/netbox/gunicorn_config.pyAñ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.confAñade las siguientes líneas:
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-dataGuarda el archivo. Después, reinicia el servicio Supervisor con el siguiente comando:
# systemctl restart supervisorDespués, habilita el servicio Supervisor para encender en caso de arranque con el siguiente comando:
# systemctl enable supervisorConfigura 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 host virtual Nginx con el siguiente comando:
# nano /etc/nginx/sites-available/netbox.confAñ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 -tDespué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 nginxAccede 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 instalado NetBox y listo para ser usado 🙂