Instalar Netbox en CentOS 7

por | 11/03/2019

Netbox es una herramienta para administrar y documentar equipos y redes informáticas. Creada por el personal de DigitalOcean, es una herramienta INDISPENSABLE para administrar Datacenters, salas de IT de empresas o incluso nuestro lab casero. Os mostraré como Instalar netbox en CentOS 7 y para qué nos puede ser útil.

¿Cómo instalar Netbox?

Vamos a instalar la aplicación en un servidor Linux CentOS 7 y necesitaremos lo siguiente:

PostgreSQL, Python y Webserver (Nginx o Apache).

Mediante Git descargaremos la última versión de Netbox.

Empezamos instalando PostGreSQL descargando el repositorio

 
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Seguidamente instalamos PostgreSQL

 
yum install postgresql96 postgresql96-server postgresql96-devel

Y procedemos a inicializar la base de datos.

/usr/pgsql-9.6/bin/postgresql96-setup initdb 

Ahora procedemos a cambiar la configuración del password de postgreSQL.

vi /var/lib/pgsql/9.6/data/pg_hba.conf 

Tendremos que modificar lo que pone ident por md5.

A continuación levantamos el servicio de PostgreSQL y lo hacemos persistente al inicio.

systemctl start postgresql-9.6
systemctl enable postgresql-9.6

Ahora vamos a crear la base de datos para netbox, el usuario y credenciales.

 
sudo -u postgres psql 
psql (9.6.12) Type "help" for help. 
postgres=# CREATE DATABASE netbox; 
CREATE DATABASE 
postgres=# CREATE USER netbox WITH PASSWORD 'UN_PASSWORD';
CREATE ROLE 
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox; 
GRANT
postgres=# \q 

A continuación instalaremos Python.

# yum install -y epel-release 
# yum install -y gcc python36 python36-devel python36-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config 
# easy_install-3.6 pip 
# ln -s /usr/bin/python36 /usr/bin/python3 

Finalmente creamos un enlace simbolico.

Procedemos ahora a crear una carpeta para netbox donde lo descargaremos usango GIT.

 mkdir -p /opt/netbox/ && cd /opt/netbox/ 

Comprobamos tener git instalado, sino lo instalamos.

Usango git, descargamos el paquete de netbox.

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

Ahora vamos a crear un usuario para netbox.

useradd netbox
passwd netbox

Vemos todo lo que se nos ha descargado con git.

A continuación instalamos los paquetes necesarios para python usando pip.

 pip3 install -r requirements.txt 

Copiamos la configuración básica a nuestro nuevo archivo de configuración.

cp configuration.example.py configuration.py 

En la configuración, podemos especificar detalles de la base de datos, los usuarios administradores, el banner con el nombre de la empresa, configuración de email para notificaciones o el tipo de formato de fecha y hora.

Ahora importamos el schema de la base de datos.

 python3 manage.py migrate 

Creamos el usuario superuser ( administrador ).

python3 manage.py createsuperuser 

Ahora vamos a comprobar que la apliación carga y podemos usarla. Esto nos sirve a modo de test.

python3 manage.py runserver 0.0.0.0:8000 --insecure 

A continuación instalaremos nuestro webserver, en esta ocasión usaré Apache. Os dejo un artículo dónde explico cómo instalarlo.

Una vez tenemos nuestro webserver instalado, instalaremos gunicorn.

pip3 install gunicorn 

Y modificamos el archivo de configuración:

/opt/netbox/gunicorn_config.py 

Una vez modificado el archivo de configuación de gunicorn, instalamos supervisor.

yum install -y supervisor

Ahora configuramos la configuración de supervisor.

vi /etc/supervisor.d/netbox.ini

Reiniciamos el servicio de supervisor con systemctl restart supervisord

Finalmente, si vamos a la IP o la URL de nuestra aplicación, hacemos login y ya podremos trabajar con netbox.

Entrando en http://url/admin podremos gestionar los usuarios, grupos, permisos, etc…

Ahora ya sólo nos quedará agregar equipos, rangos de IP, servidores, etc…

Os dejo la configuración de apache por si os sirve de referencia.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *