Cómo instalar NetBox en Ubuntu 18.04 LTS
Cómo instalar NetBox en Ubuntu 18.04 LTS es el título de nuestro artículo de hoy. NetBox es una aplicación web IPAM/DCIM de código abierto que se utiliza para administrar y documentar redes informáticas y administrar direcciones IP. Fue concebido inicialmente por el equipo de ingeniería de redes de DigitalOcean.
Netbox abarca los siguientes aspectos de la gestión de red:
- Gestión de direcciones IP (IPAM): redes y direcciones IP, VRF y VLAN
- Bastidores de equipos: organizados por grupo y sitio
- Dispositivos: tipos de dispositivos y dónde están instalados
- Conexiones: conexiones de red, consola y alimentación entre dispositivos
- Virtualización: máquinas virtuales y clústeres
- Circuitos de datos: circuitos y proveedores de comunicaciones de larga distancia.
- Secretos: almacenamiento cifrado de credenciales confidenciales
Si está interesado en implementar Netbox en CentOS 7, consulte:
- Instale NetBox en CentOS 7 con Apache y Supervisord
Instale NetBox en Ubuntu 18.04 LTS
Esta sección analizará los pasos reales que debe seguir para instalar NetBox en su servidor Ubuntu 18.04 LTS. Síguelos en orden de aparición, aunque puedes saltarte una parte si ya tienes configurado el software que estás instalando.
Paso 1: instalar las dependencias requeridas
Comience instalando todas las aplicaciones de dependencia necesarias para ejecutar NetBox en Ubuntu 18.04 LTS.
sudo apt update
sudo apt install -y git gcc nginx redis supervisor build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
Instale paquetes de Python3.9.
sudo apt install wget build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
wget https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tgz
tar xzf Python-3.9.*.tgz
cd Python-3.9*/
sudo ./configure --enable-optimizations
sudo make altinstall
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.9
Confirme la versión de Python instalada.
$ python3.9 -V
Python 3.9.16
$ pip3.9 -V
pip 23.2.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
Paso 2: instalar el servidor de base de datos PostgreSQL
NetBox utiliza el servidor de base de datos PostgreSQL para almacenar sus datos. Instálelo y configúrelo en Ubuntu 18.04 usando nuestra guía anterior a continuación:
- Instalar PostgreSQL 12 en Ubuntu
Luego cree una base de datos y un usuario para NetBox.
$ 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 netbox
.
# psql -U netbox -h localhost -W
Password:
psql (12.15 (Ubuntu 12.15-1.pgdg18.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox-> \q
Paso 3: instalar y configurar Netbox
Cambiar al directorio /opt/
cd /opt/
sudo git clone -b master https://github.com/digitalocean/netbox.git
Crear un archivo de configuración
cd netbox/netbox/netbox/
sudo cp configuration_example.py configuration.py
Edite el archivo de configuración y establezca los detalles de inicio de sesión permitidos del host y de la base de datos
$ sudo vim configuration.py
# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['*']
# PostgreSQL database configuration.
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'StrongPassword', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
Generar clave SECRETA de Django:
cd /opt/netbox/netbox
sudo ./generate_secret_key.py
Luego configure la clave en el archivo /opt/netbox/netbox/netbox/configuration.py
Ejemplo :
$ sudo vim /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = '30m&hqd@09h2i5hro=^l8wqtjw2$!3j%=f2!zh_sey+13jg%3$'
Instalar dependencias de Netbox
sudo pip3.9 install -r /opt/netbox/requirements.txt
Migrar datos de la base de datos:
cd /opt/netbox/netbox/
sudo python3.9 manage.py migrate
Salida de muestra para la migración de bases de datos.
....
Applying dcim.0171_cabletermination_change_logging... OK
Applying dcim.0172_larger_power_draw_values... OK
Applying django_rq.0001_initial... OK
Applying extras.0087_dashboard... OK
Applying extras.0088_jobresult_webhooks... OK
Applying extras.0089_customfield_is_cloneable... OK
Applying extras.0090_objectchange_index_request_id... OK
Applying extras.0091_create_managedfiles... OK
Applying extras.0092_delete_jobresult... OK
Applying ipam.0064_clear_search_cache... OK
Applying ipam.0065_asnrange... OK
Applying ipam.0066_iprange_mark_utilized... OK
Applying sessions.0001_initial... OK
Applying social_django.0001_initial... OK
Applying social_django.0002_add_related_name... OK
Applying social_django.0003_alter_email_max_length... OK
Applying social_django.0004_auto_20160423_0400... OK
Applying social_django.0005_auto_20160727_2333... OK
Applying social_django.0006_partial... OK
Applying social_django.0007_code_timestamp... OK
Applying social_django.0008_partial_timestamp... OK
Applying social_django.0009_auto_20191118_0520... OK
Applying social_django.0010_uid_db_index... OK
Applying social_django.0011_alter_id_fields... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
Applying taggit.0003_taggeditem_add_unique_index... OK
Applying taggit.0004_alter_taggeditem_content_type_alter_taggeditem_tag... OK
Applying taggit.0005_auto_20220424_2025... OK
Applying tenancy.0010_tenant_relax_uniqueness... OK
Applying users.0001_squashed_0011... OK
Applying users.0002_standardize_id_fields... OK
Applying users.0003_token_allowed_ips_last_used... OK
Crear usuario administrador:
$ sudo python3.9 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: [email
Password: <Enter Password>
Password (again): <Re-enter Password>
Superuser created successfully.
Mover archivos estáticos
$ cd /opt/netbox/netbox
$ sudo python3.9 manage.py collectstatic
229 static files copied to '/opt/netbox/netbox/static'.
Paso 4: Instalar y configurar gunicorn
Instale gunicorn usando pip3:
$ sudo pip3.9 install gunicorn
Collecting gunicorn
Downloading https://files.pythonhosted.org/packages/8c/da/b8dd8deb741bff556db53902d4706774c8e1e67265f69528c14c003644e6/gunicorn-19.9.0-py2.py3-none-any.whl (112kB) 100% |████████████████████████████████| 122kB 737kB/s
Installing collected packages: gunicorn
Successfully installed gunicorn-19.9.0
Configurar gunicorn para Netbox:
cat <<EOF | sudo tee /opt/netbox/gunicorn_config.py
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'localhost:8085'
workers = 3
user = 'www-data'
EOF
Paso 5: Configurar supervisor
Cree un archivo de configuración de supervisor:
cat <<EOF | sudo tee /etc/supervisor/conf.d/netbox.conf
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
EOF
Reinicie y habilite el servicio de supervisión para que se inicie al arrancar.
sudo systemctl restart supervisor.service
sudo systemctl enable supervisor.service
El estado debe mostrar ejecutándose con salida de netbox.
$ systemctl status supervisor
● supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-08-16 20:56:46 UTC; 7s ago
Docs: http://supervisord.org
Main PID: 25571 (supervisord)
Tasks: 5 (limit: 4584)
CGroup: /system.slice/supervisor.service
├─25571 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
├─25679 /usr/local/bin/python3.9 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
├─25680 /usr/local/bin/python3.9 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
├─25681 /usr/local/bin/python3.9 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
└─25682 /usr/local/bin/python3.9 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
Aug 16 20:56:46 bionic systemd[1]: Started Supervisor process control system for UNIX.
Aug 16 20:56:47 bionic supervisord[25571]: 2023-08-16 20:56:47,049 CRIT Supervisor running as root (no user in config file)
Aug 16 20:56:47 bionic supervisord[25571]: 2023-08-16 20:56:47,050 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing
Aug 16 20:56:47 bionic supervisord[25571]: 2023-08-16 20:56:47,060 INFO RPC interface 'supervisor' initialized
Aug 16 20:56:47 bionic supervisord[25571]: 2023-08-16 20:56:47,060 CRIT Server 'unix_http_server' running without any HTTP authentication checking
Aug 16 20:56:47 bionic supervisord[25571]: 2023-08-16 20:56:47,060 INFO supervisord started with pid 25571
Aug 16 20:56:48 bionic supervisord[25571]: 2023-08-16 20:56:48,064 INFO spawned: 'netbox' with pid 25679
Aug 16 20:56:49 bionic supervisord[25571]: 2023-08-16 20:56:49,254 INFO success: netbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Paso 6: configurar el servidor web Nginx
Configuremos el servidor web Nginx para ayudarnos a acceder a Netbox a través del 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.
sudo vim /etc/nginx/conf.d/netbox.conf
Con los datos siguientes.
server {
listen 80;
server_name netbox.example.com;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://localhost:8085;
}
}
Verifique la sintaxis de configuración de Nginx y reinicie su servicio
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si está bien, reinicie el servicio Nginx
sudo systemctl restart nginx
Paso 7: acceda a la interfaz de usuario web de Netbox
Si no tiene un servidor DNS, agregue una entrada en /etc/hosts
.
$ sudo vim /etc/hosts
5.75.227.153 netbox.example.com
Abra su navegador web predeterminado y abra el nombre de host del servidor Netbox. Para realizar cambios, inicie sesión con el usuario administrador creado anteriormente.
Disfrute usando Netbox para documentar su infraestructura de red. Consulte la documentación oficial de Netbox para obtener más detalles.
- Instalar y configurar phpIPAM en Debian
- Cómo instalar RackTables en Ubuntu
- Instale Neat IP Address Planner (NIPAP) en Ubuntu/Debian