Cómo instalar la herramienta de gestión y documentación de red NetBox en Ubuntu 22.04

NetBox es una aplicación web de código abierto de gestión de direcciones IP (IPAM) y gestión de infraestructuras de centros de datos (DCIM) que se utiliza para gestionar y documentar redes informáticas y direcciones IP. Fue concebida inicialmente por el equipo de ingeniería de redes de DigitalOcean. Está escrita utilizando el framework Django Python y utiliza la base de datos PostgreSQL para el almacenamiento de datos. También utiliza la base de datos Redis para almacenar en caché las consultas.

Este tutorial te enseñará a instalar la herramienta NetBox en un servidor Ubuntu 22.04 y Nginx como servidor proxy inverso.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio completo (FQDN) como netbox.example.com.
  • Asegúrate de que todo está actualizado.
    $ sudo apt update
    $ sudo apt upgrade
    
  • Pocos paquetes que necesite tu sistema.
    $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

    Puede que algunos de estos paquetes ya estén instalados en tu sistema.

Paso 1 – Configurar el Cortafuegos

El primer paso es configurar el cortafuegos. Ubuntu viene con ufw (Uncomplicated Firewall) por defecto.

Comprueba si el cortafuegos se está ejecutando.

$ sudo ufw status

Deberías obtener la siguiente salida.

Status: inactive

Permite el puerto SSH para que el cortafuegos no rompa la conexión actual al activarlo.

$ sudo ufw allow OpenSSH

Permite también los puertos HTTP y HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Habilita el cortafuegos

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Comprueba de nuevo el estado del cortafuegos.

$ sudo ufw status

Deberías ver un resultado similar.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Paso 2 – Instalar y configurar PostgreSQL

NetBox funciona con PostgreSQL 11 y versiones superiores. Ubuntu 22.04 viene con PostgreSQL 14 por defecto. Nosotros utilizaremos PostgreSQL 15 para nuestro tutorial.

Ejecuta el siguiente comando para añadir la clave GPG de PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Añade el repositorio APT a tu lista de fuentes.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Actualiza el repositorio del sistema.

$ sudo apt update

Ahora, puedes instalar PostgreSQL utilizando el comando siguiente.

$ sudo apt install postgresql postgresql-contrib

El paquete postgresql-contrib contiene algunas utilidades adicionales.

Comprueba el estado del servicio PostgreSQL.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2022-11-27 9:10:35 UTC; 5s ago
    Process: 30544 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 30544 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Dec 27 9:10:35 netbox systemd[1]: Starting PostgreSQL RDBMS...
Dec 27 9:10:35 netbox systemd[1]: Finished PostgreSQL RDBMS.

Verás que el servicio está activado y en ejecución por defecto.

Inicia el intérprete de comandos PostgreSQL.

$ sudo -i -u postgres psql

Crea la base de datos NetBox.

postgres=# CREATE DATABASE netbox;

Crea el usuario NetBox y elige una contraseña segura.

postgres-# CREATE USER netbox WITH PASSWORD 'Your_Password';

Cambia el propietario de la base de datos por el usuario NetBox.

postgres-# ALTER DATABASE netbox OWNER TO netbox;

Sal del intérprete de comandos.

postgres-# \q

Comprueba que tus credenciales funcionan.

$ psql --username netbox --password --host localhost netbox
Password for user netbox:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

netbox=>

Sal del intérprete de comandos escribiendo \q.

Paso 3 – Instalar y configurar Redis

Ubuntu incluye Redis 6.0.16. Para nuestro tutorial, instalaremos la última versión desde el repositorio oficial.

Importa la clave GPG oficial de Redis.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Añade el repositorio APT a tu lista de fuentes.

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Actualiza la lista de repositorios del sistema.

$ sudo apt update

Ejecuta el siguiente comando para instalar el servidor Redis.

$ sudo apt install redis

Confirma la versión de Redis.

$ redis-server -v
Redis server v=7.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=2260280010e18db8

Verifiquemos la conexión al servicio mediante el siguiente comando.

$ redis-cli

Pasarás a la shell de Redis.

El primer paso es establecer la contraseña para el usuario Redis por defecto. Sustituye Your_Redis_Password por una contraseña segura de tu elección.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Prueba la autenticación de Redis.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Haz ping al servicio.

127.0.0.1:6379> ping
PONG

Sal del servicio escribiendo exit.

Paso 4 – Descarga NetBox

NetBox requiere Python Django para funcionar. El primer paso para instalar NetBox es instalar los paquetes de Python necesarios. Ejecuta el siguiente comando para instalar los paquetes Python necesarios.

$ sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

Comprueba la versión de Python.

$ python3 -V
Python 3.10.6

Crea el directorio base para la instalación de NetBox.

$ sudo mkdir -p /opt/netbox/

Cambia al directorio.

$ cd /opt/netbox

Clona la rama maestra del repositorio GitHub de NetBox en el directorio actual.

$ sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .

La bandera --depth 1 sólo recupera la confirmación más reciente del repositorio. Si quieres descargar todo el historial de confirmaciones, puedes omitir la bandera.

Consulta la última versión de NetBox en la página de versiones y compruébala utilizando Git. En el momento de escribir el tutorial, 3.4.1 es la última versión disponible.

$ git config --global --add safe.directory /opt/netbox
$ sudo git checkout v3.4.1

Antes de comprobarla, tienes que añadir el directorio a la lista de directorios seguros de Git. Se trata de una nueva función de seguridad disponible en las versiones recientes de Git.

El siguiente paso es crear un usuario y un grupo de sistema para NetBox.

$ sudo adduser --system --group netbox

Da permiso al usuario sobre el directorio multimedia de NetBox.

$ sudo chown --recursive netbox /opt/netbox/netbox/media/

Paso 5 – Configurar NetBox

Cambia al directorio de configuración de NetBox.

$ cd /opt/netbox/netbox/netbox/

Copia el archivo de configuración de ejemplo para crear el archivo real.

$ sudo cp configuration_example.py configuration.py

Antes de proceder a la configuración, necesitamos crear una clave secreta para NetBox. Anota la clave porque la necesitamos para la configuración.

$ python3 ../generate_secret_key.py
dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+(

Abre el archivo de configuración para editarlo.

$ sudo nano configuration.py

Busca la variable ALLOWED_HOSTS y establece sus valores como se indica a continuación. Esta variable contiene una lista de los nombres de host y direcciones IP válidos con los que se puede acceder a este servidor.

ALLOWED_HOSTS = ['netbox.example.com', '<yourserverIP>']

El siguiente paso es editar los detalles de la base de datos. Configura los detalles de la base de datos como se indica a continuación.

DATABASE = {
    'NAME': 'netbox',              # Database name
    'USER': 'netbox',              # PostgreSQL username
    'PASSWORD': 'Your_Password',   # PostgreSQL password
    'HOST': 'localhost',           # Database server
    'PORT': '',                    # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,           # Max database connection age
}

Configura la configuración de Redis como se muestra. Introduce la contraseña de Redis que estableciste en el paso 3.

REDIS = {
    'tasks': {
        'HOST': 'localhost',
        'PORT': 6379,
        # Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
        # 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
        # 'SENTINEL_SERVICE': 'netbox',
        'PASSWORD': 'Your_Redis_Password',
        'DATABASE': 0,
        'SSL': False,
        # Set this to True to skip TLS certificate verification
        # This can expose the connection to attacks, be careful
        # 'INSECURE_SKIP_TLS_VERIFY': False,
    },
    'caching': {
        'HOST': 'localhost',
        'PORT': 6379,
        # Comment out `HOST` and `PORT` lines and uncomment the following if using Redis Sentinel
        # 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
        # 'SENTINEL_SERVICE': 'netbox',
        'PASSWORD': 'Your_Redis_Password',
        'DATABASE': 1,
        'SSL': False,
        # Set this to True to skip TLS certificate verification
        # This can expose the connection to attacks, be careful
        # 'INSECURE_SKIP_TLS_VERIFY': False,
    }
}

Añade el valor de la clave secreta a la variable.

SECRET_KEY = 'dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+('

Por defecto, NetBox utiliza el sistema de archivos local para almacenar los archivos subidos. Puedes almacenar archivos en un sistema de archivos remoto instalando la biblioteca django-storages. Ejecuta el siguiente comando para añadir el paquete django-storages a requirements.txt de NetBox, que se instalará en un paso posterior. También tenemos que configurar los parámetros de almacenamiento. Descomenta la sección de almacenamiento del archivo de configuración y procede como se indica a continuación.

STORAGE_BACKEND = 'storages.backends.s3boto3.S3Boto3Storage'
STORAGE_CONFIG = {
    'AWS_ACCESS_KEY_ID': 'Key ID',
    'AWS_SECRET_ACCESS_KEY': 'Secret',
    'AWS_STORAGE_BUCKET_NAME': 'netbox',
    'AWS_S3_REGION_NAME': 'eu-west-1',
}

También se admiten otros tipos de almacenamiento, como FTP, SFTP, Dropbox y otros proveedores de S3. Para saber cómo configurarlos, puedes leer la página de ayudadjango-storages .

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Paso 6 – Instalar NetBox

Ejecuta el script de actualización de NetBox.

$ sudo /opt/netbox/upgrade.sh

El script de actualización realiza las siguientes tareas.

  • Crea un entorno virtual Python
  • Instala todos los paquetes Python necesarios
  • Ejecuta las migraciones del esquema de la base de datos
  • Construye la documentación localmente (para su uso sin conexión)
  • Agrega los archivos de recursos estáticos en el disco

Activa el entorno virtual creado por el script de actualización.

$ source /opt/netbox/venv/bin/activate

El siguiente paso es crear un superusuario para acceder a NetBox. Pero antes, pasa al directorio necesario.

(venv) $ cd /opt/netbox/netbox

Crea el superusuario.

(venv) $ python3 manage.py createsuperuser

Obtendrás la siguiente salida.

Username (leave blank to use 'navjot'):
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

NetBox incluye un comando de gestión housekeeping que se encarga de las tareas recurrentes de limpieza, como borrar las sesiones antiguas y los registros de cambios caducados. Puedes ejecutar el comando manualmente o utilizar cron para ejecutarlo a intervalos regulares. NetBox proporciona un script de shell para ejecutar las tareas de limpieza. Ejecuta el siguiente comando para crear un enlace suave para el script en el directorio diario de Cron. Esto garantizará que el comando se ejecute diariamente.

(venv) $ sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

El último paso es probar si la aplicación NetBox funciona. Pero antes, tenemos que abrir el puerto 8000 para las pruebas. Aunque puedes utilizar cualquier puerto.

(venv) $ sudo ufw allow 8000

Inicia una instancia de desarrollo de NetBox.

(venv) $ python3 manage.py runserver 0.0.0.0:8000 --insecure

Si funciona, obtendrás la siguiente salida.

Performing system checks...

System check identified no issues (0 silenced).
December 27, 2022 - 09:27:37
Django version 4.1.4, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Deberías poder acceder a NetBox a través de la URL http://<yourserverIP>:8000/. Obtendrás la siguiente pantalla.

Página de NetBox

Haz clic en el botón Iniciar sesión para abrir la página de inicio de sesión e introduce las credenciales de superusuario creadas anteriormente.

Página de acceso a NetBox

Volverás al panel de NetBox.

Pulsa la tecla Ctrl + C para detener el servidor. Desactiva el entorno virtual Python.

(venv) $ deactivate

Paso 7 – Configurar Gunicorn y crear un archivo de servicio

NetBox se ejecuta como una aplicación WSGI detrás de un servidor HTTP. NetBox instala automáticamente el servidor Gunicorn. En este paso, configuraremos Gunicorn y crearemos un archivo de servicio para NetBox, de modo que pueda ejecutarse en segundo plano y a través de los reinicios del sistema.

NetBox incluye un archivo de configuración de Gunicorn por defecto. Crea una copia del mismo.

$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

La configuración por defecto debería ser suficiente para nuestros propósitos. Dependiendo de tus necesidades, puedes editar el archivo para cambiar el nombre de host y el número de puerto o mejorar el rendimiento cambiando los hilos, los trabajadores y el número de peticiones.

El siguiente paso es copiar los archivos de servicio de NetBox y Gunicorn en el directorio /etc/systemd/system.

$ sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/

Recarga el demonio de servicio.

$ sudo systemctl daemon-reload

Inicia y activa los servicios netbox y netbox-rq.

$ sudo systemctl start netbox netbox-rq
$ sudo systemctl enable netbox netbox-rq

Comprueba el estado del servicio WSGI.

$ sudo systemctl status netbox

Obtendrás una salida similar.

? netbox.service - NetBox WSGI Service
     Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-12-27 09:28:23 UTC; 17s ago
       Docs: https://docs.netbox.dev/
   Main PID: 4180 (gunicorn)
      Tasks: 6 (limit: 1030)
     Memory: 357.9M
        CPU: 7.747s
     CGroup: /system.slice/netbox.service
             ??4180 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4181 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4182 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4183 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4184 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4185 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi

Dec 27 09:28:23 netbox systemd[1]: Started NetBox WSGI Service.
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Starting gunicorn 20.1.0
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Listening at: http://127.0.0.1:8001 (4180)
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Using worker: gthread
Dec 27 09:28:24 netbox gunicorn[4181]: [2022-12-27 09:28:24 +0000] [4181] [INFO] Booting worker with pid: 4181
Dec 27 09:28:24 netbox gunicorn[4182]: [2022-12-27 09:28:24 +0000] [4182] [INFO] Booting worker with pid: 4182
Dec 27 09:28:24 netbox gunicorn[4183]: [2022-12-27 09:28:24 +0000] [4183] [INFO] Booting worker with pid: 4183
Dec 27 09:28:24 netbox gunicorn[4184]: [2022-12-27 09:28:24 +0000] [4184] [INFO] Booting worker with pid: 4184
Dec 27 09:28:24 netbox gunicorn[4185]: [2022-12-27 09:28:24 +0000] [4185] [INFO] Booting worker with pid: 4185

Como puedes ver, Gunicorn escucha en el puerto 8001 por defecto. Esta información te será útil cuando configures Nginx como servidor proxy inverso.

Paso 8 – Instalar Nginx

Ubuntu 22.04 viene con una versión antigua de Nginx. Para instalar la última versión, necesitas descargar el repositorio oficial de Nginx.

Importa la clave de firma de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
	| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Añade el repositorio de la versión estable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Actualiza los repositorios del sistema.

$ sudo apt update

Instala Nginx.

$ sudo apt install nginx

Verifica la instalación.

$ nginx -v
nginx version: nginx/1.22.1

Iniciar el servidor Nginx.

$ sudo systemctl start nginx

Paso 9 – Instalar SSL

Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot utilizando el repositorio de Ubuntu o descargar la última versión utilizando la herramienta Snapd. Nosotros utilizaremos la versión Snapd.

Ubuntu 22.04 viene con Snapd instalado por defecto. Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd está actualizada. Asegúrate de que tu versión de Snapd está actualizada.

$ sudo snap install core
$ sudo snap refresh core

Instala Certbot.

$ sudo snap install --classic certbot

Utiliza el siguiente comando para asegurarte de que se ejecuta el comando Certbot creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Ejecuta el siguiente comando para generar un certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netbox.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/netbox.example.com de tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Para comprobar si la renovación SSL funciona correctamente, realiza una ejecución en seco del proceso.

$ sudo certbot renew --dry-run

Si no ves ningún error, ya está todo listo. Tu certificado se renovará automáticamente.

Paso 10 – Configurar Nginx

Abre el archivo /etc/nginx/nginx.conf para editarlo.

$ sudo nano /etc/nginx/nginx.conf

Añade la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.

Crea y abre el archivo /etc/nginx/conf.d/netbox.conf para editarlo.

$ sudo nano /etc/nginx/conf.d/netbox.conf

Pega en él el siguiente código.

server {
  # Redirect any http requests to https
  listen         80;
  listen         [::]:80;
  server_name    netbox.example.com;
  return 301     https://$host$request_uri;
}

server {
  listen                    443 ssl http2;
  listen                    [::]:443 ssl http2;
  server_name               netbox.example.com;

  access_log                /var/log/nginx/netbox.access.log;
  error_log                 /var/log/nginx/netbox.error.log;

  # TLS configuration
  ssl_certificate           /etc/letsencrypt/live/netbox.example.com/fullchain.pem;
  ssl_certificate_key       /etc/letsencrypt/live/netbox.example.com/privkey.pem;
  ssl_trusted_certificate   /etc/letsencrypt/live/netbox.example.com/chain.pem;
  ssl_protocols             TLSv1.2 TLSv1.3;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_session_cache         shared:SSL:50m;
  ssl_session_timeout       1d;

  # OCSP Stapling ---
  # fetch OCSP records from URL in ssl_certificate and cache them
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  client_max_body_size 25m;

  # Proxy everything over to the netbox server
  location /static/ {
    alias /opt/netbox/netbox/static/;
  }

  location / {
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header	    X-Forwarded-Host $http_host;
    proxy_pass              http://127.0.0.1:8001;
  }
}

Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite una vez hayas terminado.

Comprueba la sintaxis del archivo de configuración de Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicia el servicio Nginx.

$ sudo systemctl restart nginx

Ahora puedes acceder al Panel de NetBox a través de la URL https://netbox.example.com.

Paso 11 – Actualizar NetBox

Actualizar NetBox es bastante sencillo. Los pasos consisten en consultar la rama maestra del repositorio Git, extraer los últimos commits y, a continuación, consultar la nueva versión estable.

Cambia al directorio NetBox.

$ cd /opt/netbox

Comprueba la rama maestra.

$ sudo git checkout master

Extrae los últimos commits del repositorio.

$ sudo git pull origin master

Comprueba la nueva versión. Si la versión 3.4.2 es la más reciente, puedes comprobarla.

$ sudo git checkout v3.4.2

Ejecuta el script de actualización.

$ sudo ./upgrade.sh

Para el proceso de actualización, el script realiza las siguientes funciones.

  • Destruye y reconstruye el entorno virtual de Python
  • Instala todos los paquetes de Python necesarios (enumerados en requirements.txt)
  • Instala cualquier paquete adicional de local_requirements.txt
  • Aplica las migraciones de bases de datos incluidas en la versión.
  • Construye la documentación localmente (para su uso sin conexión)
  • Recoge todos los archivos estáticos que debe servir el servicio HTTP
  • Elimina los tipos de contenido obsoletos de la base de datos
  • Elimina todas las sesiones de usuario caducadas de la base de datos

Reinicia el servicio Gunicorn y NetBox.

$ sudo systemctl restart netbox netbox-rq

Conclusión

Con esto concluye nuestro tutorial sobre la instalación de la Herramienta de Gestión y Documentación de Red NetBox en un servidor Ubuntu 22.04 junto con NGinx como servidor proxy inverso. Si tienes alguna pregunta, publícala en los comentarios a continuación.

También te podría gustar...