Instale y configure las herramientas NetBox IPAM y DCIM en Ubuntu 20.04

A
Puedes descargar este artículo en formato PDF para apoyarnos a través del siguiente enlace.

Descarga la guía en formato PDF

apagar
A

El
El

Una infraestructura bien documentada muestra la inversión, organización y expresividad del equipo de operaciones dentro de la organización. Ayuda a capacitar a los nuevos empleados y facilita su trabajo, ya que ayuda a crear un mapa mental de cada dispositivo en el centro de datos. Atrás quedaron los días de dibujarlos en papel, imprimirlos y pegarlos en la pared. La belleza de las herramientas de código abierto como NetBox hace que este tipo de documentación vuelva a ser fácil e interesante. Esta guía se centra en cómo instalar NetBox en el nuevo Ubuntu 20.04 (Focal Fossa).

Antes de comenzar, familiaricémonos con esta herramienta. NetBox es un IPAM de código abierto | Aplicación web DCIM para la gestión y registro de redes informáticas y gestión de direcciones IP. Originalmente fue concebido por el equipo de ingeniería de redes de DigitalOcean. A continuación se muestra gráficamente una descripción general de sus componentes.

Gracias a la página de documentación de Netbox

Netbox incluye los siguientes aspectos de gestión de red:

  • Gestión de direcciones IP (IPAM): red y dirección IP, VRF y VLAN
  • Bastidores de equipos organizados por grupo y sitio
  • Tipo de equipo-equipo y su ubicación de instalación
  • Conexiones-red, consola y conexiones de alimentación entre dispositivos
  • Virtualización: máquinas virtuales y clústeres
  • Circuito de datos-circuito de telecomunicaciones y proveedor
  • Confidencial: almacenamiento encriptado de credenciales confidenciales

“Una de las mayores tragedias de la vida es ver muertes potenciales inexploradas”. -Myles Munroe

Paso 1: Instala las dependencias requeridas

La mejor manera de comenzar es instalar todas las dependencias necesarias para ejecutar NetBox en Ubuntu 20.04 LTS. Así que instalemos todos los componentes como se muestra a continuación.

sudo apt-get install -y git gcc nginx redis s python3-setuptools  graphviz python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

Por cierto, procederemos al siguiente paso para configurar la base de datos y otras bases de datos.

Paso 2: Instalar y configurar PostgreSQL

A los desarrolladores de NetBox les debe gustar usar PostgreSQL para almacenar datos. Por lo tanto, instalaremos y configuraremos el servidor PostgreSQL en este paso. Afortunadamente, tenemos una guía detallada para configurar PostgreSQL. Consulte la siguiente guía para completar esta operación.

Instale el servidor de base de datos PostgreSQL en Ubuntu 20.04 (Focal Fossa)

Después de instalar correctamente PostgreSQL, cree una base de datos y un usuario para NetBox como se muestra a continuación.

$ sudo -u postgres psql

CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'StrongPassword';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
q

Confirme que puede iniciar sesión en la base de datos como usuario de netbox.

$ psql -U netbox -h localhost -W

Password: 
psql (12.3 (Ubuntu 12.3-1.pgdg20.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

netbox=>

Paso 3: Instalar y configurar Netbox

Ahora que nos sumergimos en esta guía, podemos clonar Netbox desde git y comenzar el proceso de configuración para nosotros. Puede tomar una bocanada de aire fresco y luego sumergirse nuevamente en el agua para continuar.

Ve al directorio /opt/ y clona netbox desde git

cd /opt/
sudo git clone -b master https://github.com/digitalocean/netbox.git
cd netbox/netbox/netbox/
sudo cp configuration.example.py configuration.py

Edite el archivo de configuración y configure los detalles de inicio de sesión de la base de datos y el host permitidos

$ sudo vim configuration.py

# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['localhost']

# PostgreSQL database configuration.
DATABASE = {
    'NAME': 'netbox',                           # Database name you created
    'USER': 'netbox',                           # PostgreSQL username you created
    'PASSWORD': 'StrongPassword',               # PostgreSQL password you set
    'HOST': 'localhost',                        # Database server
    'PORT': '',                                 # Database port (leave blank for default)
}

Crear usuario NetBox

Configuramos los servicios WSGI y HTTP para que se ejecuten en la cuenta de usuario de netbox. También asignaremos la propiedad del catálogo de medios a este usuario. Esto asegura que NetBox pueda guardar archivos locales.

sudo groupadd --system netbox
sudo adduser --system netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/

Configurar el entorno de Python

Usaremos el entorno virtual de Python para garantizar que los paquetes requeridos por NetBox no entren en conflicto con ningún programa en el sistema base. Esto creará un directorio llamado venv en nuestro directorio raíz de NetBox.

cd /opt/netbox/
sudo python3 -m venv /opt/netbox/venv

A continuación, active el entorno virtual e instale los paquetes de Python necesarios.

$ cd /opt/netbox/
$ source venv/bin/activate
(venv) [email protected]:/opt/netbox$

(venv) [email protected]:/opt/netbox$ sudo pip3 install -r requirements.txt
Collecting Django<3.1,>=3.0
  Downloading Django-3.0.8-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 1.7 MB/s

Llave

Genere una clave aleatoria que contenga al menos 50 caracteres alfanuméricos.

$ cd /opt/netbox/netbox
$ sudo ./generate_secret_key.py

-bUf2WxTdH^8%Kcl(_gnN1ym)[email protected]

Luego configure la clave en el archivo /opt/netbox/netbox/netbox/configuration.py

ejemplo:

$ sudo vim /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = '-bUf2WxTdH^8%Kcl(_gnN1ym)[email protected]'

Ejecutar la migración de la base de datos

Antes de que NetBox pueda ejecutarse, necesitamos instalar la arquitectura de la base de datos. Esto se hace ejecutando python3 manage.py para migrar desde el directorio de netbox (/opt/netbox/netbox/ en esta guía):

(venv) [email protected]:/opt/netbox/netbox$ cd /opt/netbox/netbox/netbox/
(venv) [email protected]:/opt/netbox/netbox$ sudo python3 manage.py migrate

Crear un superusuario

NetBox no viene con ninguna cuenta de usuario predefinida. Debe crear un superusuario para iniciar sesión en NetBox:

(venv) [email protected]:/opt/netbox/netbox$ sudo python3 manage.py createsuperuser

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

Recopilar archivos estáticos

(venv) [email protected]:/opt/netbox/netbox$ sudo python3 manage.py collectstatic --no-input

976 static files copied to '/opt/netbox/netbox/static'

Paso 4: Instalar y configurar gunicorn

En esta guía, configuraremos una interfaz WSGI simple usando gunicorn.

Instale gunicorn usando pip3:

$ sudo pip3 install gunicorn
Collecting gunicorn
  Using cached gunicorn-20.0.4-py2.py3-none-any.whl (77 kB)
Requirement already satisfied: setuptools>=3.0 in /usr/lib/python3/dist-packages (from gunicorn) (45.2.0)
Installing collected packages: gunicorn
Successfully installed gunicorn-20.0.4

Configurar Gunicorn

Copie /opt/netbox/contrib/gunicorn.py en /opt/netbox/gunicorn.py y edítelo según sea necesario.

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

# The IP address (typically localhost) and port that the Netbox WSGI process should listen on
bind = 'localhost:8001'

# Number of gunicorn workers to spawn. This should typically be 2n+1, where
# n is the number of CPU cores present.
workers = 5

# Number of threads per worker process
threads = 3
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
# Timeout (in seconds) for a request to complete
timeout = 120
#User
user = 'netbox'
# The maximum number of requests a worker can handle before being respawned
max_requests = 5000
max_requests_jitter = 500

Paso 5: Configurar Systemd

Usaremos systemd para controlar el demonio del servicio NetBox. Primero, copie contrib/netbox.service y contrib/netbox-rq.service al directorio /etc/systemd/system/ como se muestra a continuación:

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

Luego, inicie los servicios netbox y netbox-rq y habilítelos para que se inicien en el momento del arranque:

sudo systemctl daemon-reload
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

Paso 6: configurar el servidor web Nginx

Configuremos el servidor web Nginx para ayudarnos a acceder a Netbox a través de un nombre de dominio en lugar de especificar una dirección IP y un puerto. Cree un nuevo archivo de configuración de Nginx para Netbox.

## Back up the default file
$ cd /etc/nginx/sites-enabled/
$ sudo mv default /tmp

## Create a new file for Netbox
$ sudo vim /etc/nginx/sites-enabled/netbox.conf

Agregue la siguiente configuración al nuevo archivo de Netbox.

server {
    listen 80;
    server_name netbox.computingforgeeks.com;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

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

Abra el archivo /etc/hosts, si no hay DNS.netbox.computingforgeeks.com 172.28.218.207, agregue una línea que contenga el FQDN a continuación.

Paso 7: acceda a la interfaz de usuario web de Netbox

Abra el navegador web predeterminado y luego abra el nombre de host del servidor Netbox. Entrarás en la página de inicio como un usuario normal. Si desea realizar cambios administrativos, debe iniciar sesiónversusHaciendo click "acceso" Como sigue.

Esto lo redirigirá a la página de inicio de sesión. Ingrese el usuario administrador que configuró aquí.

en conclusión

Finalmente tenemos una instancia de Netbox en funcionamiento para que la use. Disfrute usando esta herramienta para documentar su infraestructura de red y mejorar su organización. Para obtener detalles sobre cómo configurar, consulte la documentación oficial de Netbox. De lo contrario, gracias por venir y quedarse.

“Lo suficientemente triste, las despedidas más dolorosas son aquellas que no se han dicho, nunca se han explicado.”-Freak Jonathan Hanish

Más guías interesantes:

Instalar y configurar phpIPAM en Ubuntu/Debian Linux

Instalar Neat IP Address Planner (NIPAP) en Ubuntu y Debian

Cómo instalar NetBox IPAM en Debian Linux

Cómo instalar NetBox en Ubuntu 18.04 LTS

A
Puedes descargar este artículo en formato PDF para apoyarnos a través del siguiente enlace.

Descarga la guía en formato PDF

apagar
A

El
El