GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

NetBox es un software de aplicación web gratuito y de código abierto que se puede usar para administrar y documentar redes informáticas. Está especialmente diseñado para administrar la dirección IP y la infraestructura del centro de datos a través de un navegador web. NetBox está escrito en el marco Django Python y usa PostgreSQL para la base de datos. Con NetBox, puede administrar y documentar fácilmente máquinas virtuales y clústeres, circuitos de datos, red, consola y conexiones de alimentación desde la ubicación central.

En este tutorial, explicaremos cómo instalar NetBox en el servidor Ubuntu 18.04.

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Se configura una contraseña raíz en su servidor.

Cómo empezar

Primero, actualice el paquete de su sistema a la última versión con el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez que todos los paquetes estén actualizados, reinicie su sistema para aplicar todos los cambios de configuración.

A continuación, deberá instalar las dependencias necesarias para ejecutar NetBox. Puede instalarlos todos con el siguiente comando:

apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y

Una vez que todas las dependencias estén instaladas, puede continuar con el siguiente paso.

Instalar y configurar PostgreSQL

A continuación, deberá instalar PostgreSQL en su servidor. De forma predeterminada, la última versión de PostgreSQL no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, deberá agregar el repositorio de PostgreSQL a su sistema.

Primero, descargue y agregue la clave GPG con el siguiente comando:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

A continuación, agregue el repositorio con el siguiente comando:

nano /etc/apt/sources.list.d/postgres.list

Agregue la siguiente línea:

deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main

Guarde y cierre el archivo. Luego, actualice el repositorio e instale PostgreSQL con el siguiente comando:

apt-get update -y
apt-get install postgresql postgresql-contrib -y

Una vez instalado, verifique el estado de PostgreSQL con el siguiente comando:

systemctl status postgresql

Debería ver el siguiente resultado:

? postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago
 Main PID: 13552 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 1098)
   CGroup: /system.slice/postgresql.service

Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS...
Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.

A continuación, deberá crear una base de datos y un usuario para NetBox. Primero, inicie sesión en el shell de PostgreSQL con el siguiente comando:

su - postgres
[email protected]:~$ psql

Salida:

psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))
Type "help" for help.

A continuación, cree una base de datos y un usuario para NetBox con el siguiente comando:

postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';

A continuación, otorgue todos los privilegios a NetBox con el siguiente comando:

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

Finalmente, salga del shell de PostgreSQL con el siguiente comando:

postgres=#exit

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar y configurar NetBox

Puede descargar la última versión de NetBox en el directorio /opt con el siguiente comando:

cd /opt
git clone -b master https://github.com/digitalocean/netbox.git

Luego, cambie el directorio a netbox y genere Django SECRET Key:

cd /opt/netbox/netbox/netbox/
./generate_secret_key.py

Debería ver la clave generada en el siguiente resultado:

+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$

A continuación, cambie el nombre del archivo de configuración predeterminado con el siguiente comando:

mv configuration.example.py configuration.py

A continuación, abra el archivo de configuración y defina los detalles de su base de datos y la clave secreta:

nano configuration.py

Realice los siguientes cambios:

#Replace your-server-ip with your server IP address:
# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['your-server-ip']

# PostgreSQL database configuration.
DATABASE = {
    'NAME': 'netbox',         # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'password',           # PostgreSQL password
    'HOST': 'localhost',      # Database server
    'PORT': '',               # Database port (leave blank for default)
}
SECRET_KEY = '+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$'

Guarde y cierre el archivo cuando haya terminado.

A continuación, instale todas las dependencias requeridas por NetBox con el siguiente comando:

pip3 install -r /opt/netbox/requirements.txt

Una vez instalada, migre la base de datos con el siguiente comando:

cd /opt/netbox/netbox/
python3 manage.py migrate

Una vez que migró con éxito, debería ver el siguiente resultado:

  Applying secrets.0004_tags... OK
  Applying secrets.0005_change_logging... OK
  Applying secrets.0006_custom_tag_models... OK
  Applying ipam.0021_vrf_ordering... OK
  Applying ipam.0022_tags... OK
  Applying ipam.0023_change_logging... OK
  Applying ipam.0024_vrf_allow_null_rd... OK
  Applying ipam.0025_custom_tag_models... OK
  Applying dcim.0067_device_type_remove_qualifiers... OK
  Applying dcim.0068_rack_new_fields... OK
  Applying dcim.0069_deprecate_nullablecharfield... OK
  Applying dcim.0070_custom_tag_models... OK
  Applying extras.0020_tag_data... OK
  Applying extras.0021_add_color_comments_changelog_to_tag... OK
  Applying dcim.0071_device_components_add_description... OK
  Applying dcim.0072_powerfeeds... OK
  Applying dcim.0073_interface_form_factor_to_type... OK
  Applying extras.0022_custom_links... OK
  Applying extras.0023_fix_tag_sequences... OK
  Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK
  Applying ipam.0027_ipaddress_add_dns_name... OK
  Applying sessions.0001_initial... OK
  Applying taggit.0003_taggeditem_add_unique_index... OK
  Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK
  Applying users.0003_token_permissions... OK

A continuación, deberá crear una cuenta de administrador para NetBox. Puedes hacerlo con el siguiente comando:

python3 manage.py createsuperuser

Proporcione su nombre de usuario y contraseña de administrador y presione Entrar, debería ver el siguiente resultado:

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

A continuación, mueva los archivos estáticos y cargue los datos iniciales con el siguiente comando:

python3 manage.py collectstatic
python3 manage.py loaddata initial_data

Instalar y configurar Gunicorn para NetBox

A continuación, deberá instalar Gunicorn para NetBox. Puede instalarlo con el comando pip como se muestra a continuación:

pip3 install gunicorn

A continuación, cree un archivo de configuración de Gunicorn para NetBox con el siguiente comando:

nano /opt/netbox/gunicorn_config.py

Agregue las siguientes líneas:

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'

Guarde y cierre el archivo cuando haya terminado.

Configurar supervisor para Netbox

A continuación, deberá configurar Supervisor para administrar el servicio NetBox. Puedes hacerlo con el siguiente comando:

nano /etc/supervisor/conf.d/netbox.conf

Agregue las siguientes líneas:

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data

Guarde y cierre el archivo, luego reinicie el servicio de supervisor y permita que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl restart supervisor
systemctl enable supervisor

También puede verificar el servicio de Supervisor con el siguiente comando:

systemctl status supervisor

Salida:

? supervisor.service - Supervisor process control system for UNIX
   Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago
     Docs: http://supervisord.org
  Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS)
 Main PID: 15015 (supervisord)
    Tasks: 5 (limit: 1098)
   CGroup: /system.slice/supervisor.service
           ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
           ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX.
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file)
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015
Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037
Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st

Configurar Nginx para NetBox

A continuación, deberá configurar Nginx para acceder a NetBox mediante el puerto 80. Para hacerlo, cree un archivo de configuración de host virtual con el siguiente comando:

nano /etc/nginx/sites-available/netbox

Agregue las siguientes líneas:

server {
    listen 80;
    server_name your-domain-name;
    client_max_body_size 25m;

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

    location / {
        proxy_pass http://your-server-ip:8001;
    }
}

Guarde y cierre el archivo. Luego, habilite el host virtual con el siguiente comando:

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

Finalmente, reinicie el servicio Nginx para aplicar todos los cambios de configuración con el siguiente comando:

systemctl restart nginx

Acceder a la interfaz web de NetBox

NetBox ahora está instalado y configurado, es hora de acceder a la interfaz web de NetBox.

Abra su navegador web y escriba la URL http://su-dominio.com. Será redirigido a la siguiente página:

Ahora, haga clic en Iniciar sesión botón en la esquina superior derecha. Debería ver la siguiente página:

Ahora, proporcione su nombre de usuario y contraseña de administrador, luego haga clic en Iniciar sesión En botón. Debería ver el panel predeterminado de NetBox en la siguiente página:

¡Felicidades! Ha instalado y configurado con éxito NetBox en el servidor Ubuntu 18.04. Ahora puede administrar y documentar su red y dirección IP desde la ubicación central. Siéntase libre de preguntarme si tiene alguna pregunta.


Ubuntu
  1. Cómo instalar la herramienta de administración de servidores Foreman en Ubuntu 18.04 LTS

  2. Cómo instalar Postgresql y phpPgAdmin en Ubuntu 15.04

  3. Cómo instalar Libreoffice 4.3 en Ubuntu 12.04 y 14.04 LTS

  4. Cómo instalar Libreoffice 4.4 en Ubuntu 15.04 y 14.04 LTS

  5. Cómo instalar Wireshark en Ubuntu 16.04 LTS

Cómo instalar PHP 5.6, PHP 8.0 y PHP 8.1 en Ubuntu 20.04 LTS

Cómo instalar uTorrent en Ubuntu 16.04 LTS y Ubuntu 17.10

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar PostgreSQL con phpPgAdmin en Ubuntu 20.04 LTS

Cómo instalar PostgreSQL en Ubuntu 18.04 LTS

Cómo instalar PostgreSQL en Ubuntu 20.04 LTS