Búsqueda de sitios web

Cómo ejecutar Netbox IPAM en contenedores Docker |


Bienvenido a esta guía sobre cómo ejecutar la herramienta Netbox IPAM en Docker Containers. Pero antes de profundizar en el meollo de este asunto, primero conozcamos de qué se trata la herramienta Netbox IPAM.

Netbox es una herramienta gratuita y de código abierto que se utiliza para gestionar y documentar redes informáticas a través de la web. Netbox IPAM está escrito en Django. Ayuda a facilitar la tarea de crear implementaciones virtuales de dispositivos en un centro de datos que inicialmente se realizaban en papel. Las sorprendentes características de Netbox IPAM incluyen las siguientes:

  • Gestión de VLAN
  • Gestión de VRF
  • IPAM – Gestión de direcciones IP
  • DCIM – Gestión de infraestructura del centro de datos
  • Gestión de proveedores de circuitos
  • Multisitio (inquilino)
  • Base de datos única convergente
  • Elevación del estante
  • Alerta de informe
  • Gestión de conexión: interfaces/consola/alimentación
  • Encabezado de personalización para logotipos, etc.

Ejecutar Netbox usando Docker Containers es simple porque se evita toda la tediosa tarea de instalar dependencias como Python, Django, etc.

Paso 1: actualice el sistema e instale los departamentos

Antes de comenzar con esta guía, asegúrese de que su sistema esté actualizado y que los paquetes necesarios estén instalados.

## On Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
[ -f /var/run/reboot-required ] && sudo reboot -f
sudo apt install curl vim git -y

## On RHEL/CentOS/RockyLinux 8
sudo yum -y update
sudo yum -y install curl vim git

## On Fedora
sudo dnf update
sudo dnf -y install curl vim git

Paso 2: instale Docker y Docker-Compose

Esta configuración depende de que Docker y Docker-compose cumplan con los siguientes requisitos:

  1. Versión de Docker 19.03 y superior
  2. versión de docker-compose 1.28.0 y superior

Instale la última versión de Docker CE en Linux con la ayuda de la siguiente guía.

  • Cómo instalar Docker CE en sistemas Linux

Verifique la versión instalada de Docker.

$ docker -v
Docker version 20.10.10, build b485636

Luego agregue el usuario de su sistema al grupo de Docker para ejecutar los comandos de Docker sin usar el comando sudo.

sudo usermod -aG docker $USER
newgrp docker

Ahora continúe e instale Docker-compose en Linux. Descargue la última versión de Docker-Compose como se muestra a continuación.

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url  | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -

Haga que el archivo sea ejecutable.

chmod +x docker-compose-linux-x86_64

Mueva el archivo a su RUTA.

sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

Verifique su instalación verificando la versión de Docker-Compose.

$ docker compose version
Docker Compose version v2.17.2

Ahora inicie y habilite la ventana acoplable.

sudo systemctl start docker && sudo systemctl enable docker

Paso 3: aprovisionar el servidor IPAM de Netbox

Todos los componentes necesarios para construir Netbox como contenedor acoplable se proporcionan en el repositorio de Github. Aquí, las imágenes se crean y se publican en Docker Hub y Quay.io una vez al día.

Ahora clona el archivo acoplable de Netbox como se muestra a continuación.

git clone -b release https://github.com/netbox-community/netbox-docker.git

Navegue al directorio de Netbox.

cd netbox-docker

Modifique el archivo docker-compose.yml del archivo docker-compose.override.yml.example como se muestra a continuación.

tee docker-compose.override.yml <<EOF
version: '3.4'
services:
  netbox:
    ports:
      - 8000:8080
EOF

Ahora estamos listos para iniciar nuestro contenedor acoplable. Pero primero, extraiga las imágenes necesarias para Netbox, PostgreSQL, Redis, etc.

$ docker compose pull

Se extraerán varias imágenes como se muestra a continuación.

...........
 ⠿ postgres Pulled                                                                                                                              13.5s
   ⠿ 9f97b97dbe44 Pull complete                                                                                                                  3.5s
   ⠿ 1b95022c44c5 Pull complete                                                                                                                  3.7s
   ⠿ 560a1e367f24 Pull complete                                                                                                                  8.0s
   ⠿ 41255ef20c58 Pull complete                                                                                                                  8.3s
   ⠿ 13107d5a09d7 Pull complete                                                                                                                  8.6s
   ⠿ 234db58e5916 Pull complete                                                                                                                  8.8s
   ⠿ 98ce0f30aef7 Pull complete                                                                                                                  9.1s
 ⠿ redis Pulled                                                                                                                                  9.3s
   ⠿ 97518928ae5f Already exists                                                                                                                 0.8s
   ⠿ 66f8c4150d27 Pull complete                                                                                                                  2.5s
 ⠿ redis-cache Pulled                                                                                                                            9.3s
   ⠿ 09a8bf17a0bf Pull complete                                                                                                                  3.1s
   ⠿ e547313af8e7 Pull complete                                                                                                                  4.0s
   ⠿ 335eeadfbde0 Pull complete                                                                                                                  4.6s
   ⠿ 7151fc2c01eb Pull complete    

Inicie el contenedor IPAM de Netbox.

$ docker compose up

Salida de muestra:

[+] Running 10/10
 ⠿ Network netbox-docker_default                  Created                  0.2s
 ⠿ Volume "netbox-docker_netbox-media-files"      Created                  0.0s
 ⠿ Volume "netbox-docker_netbox-postgres-data"    Created                  0.0s
 ⠿ Volume "netbox-docker_netbox-redis-data"       Created                  0.0s
 ⠿ Container netbox-docker-redis-cache-1          Created                  0.7s
 ⠿ Container netbox-docker-postgres-1             Created                  0.6s
 ⠿ Container netbox-docker-redis-1                Created                  0.7s
 ⠿ Container netbox-docker-netbox-worker-1        Created                  0.5s
 ⠿ Container netbox-docker-netbox-housekeeping-1  Created                  0.5s
 ⠿ Container netbox-docker-netbox-1               Created                  0.3s
Attaching to netbox-docker-netbox-1, netbox-docker-netbox-housekeeping-1, netbox-docker-netbox-worker-1, netbox-docker-postgres-1, netbox-docker-redis-1, netbox-docker-redis-cache-1
....................

netbox-docker-netbox-1               | ⏳ Waiting for control socket to be created... (1/10)
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [warn] 7#7 Unit is running unprivileged, then it cannot use arbitrary user and group.
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [info] 7#7 unit started
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [info] 20#20 discovery started
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [notice] 20#20 module: python 3.9.5 "/usr/lib/unit/modules/python3.unit.so"
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [info] 7#7 controller started
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [notice] 7#7 process 20 exited with code 0
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [info] 22#22 router started
netbox-docker-netbox-1               | 2021/11/15 10:37:29 [info] 22#22 OpenSSL 1.1.1l  24 Aug 2021, 101010cf
netbox-docker-netbox-1               | ⚙️ Applying configuration from /etc/unit/nginx-unit.json
netbox-docker-netbox-1               | 2021/11/15 10:37:30 [info] 26#26 "netbox" application started
netbox-docker-netbox-1               | ✅ Unit configuration loaded successfully
netbox-docker-netbox-1               | 2021/11/15 10:37:31 [notice] 7#7 process 18 exited with code 0

Cuando vea el resultado anterior, el proceso se completó, ahora salga, continúe y verifique que los contenedores se estén ejecutando:

$ docker compose ps
NAME                          IMAGE                                         COMMAND                  SERVICE             CREATED             STATUS                   PORTS
netbox-docker-netbox-1        docker.io/netboxcommunity/netbox:v3.4-2.5.2   "/usr/bin/tini -- /o…"   netbox              4 minutes ago       Up 4 minutes (healthy)   0.0.0.0:8000->8080/tcp, :::8000->8080/tcp
netbox-docker-postgres-1      docker.io/postgres:15-alpine                  "docker-entrypoint.s…"   postgres            4 minutes ago       Up 4 minutes             5432/tcp
netbox-docker-redis-1         docker.io/redis:7-alpine                      "docker-entrypoint.s…"   redis               4 minutes ago       Up 4 minutes             6379/tcp
netbox-docker-redis-cache-1   docker.io/redis:7-alpine                      "docker-entrypoint.s…"   redis-cache         4 minutes ago       Up 4 minutes             6379/tcp

Si tiene un firewall habilitado, permita el puerto 8000 como se muestra a continuación.

##For Firewalld
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

##For UFW
sudo ufw allow 8000/tcp

Paso 4: Acceda a la interfaz de usuario web de la herramienta Netbox IPAM

Todo está configurado, ahora podemos continuar y acceder a la interfaz de usuario web de Netbox IPAM con la URL http://Hostname:8000 o http://IP_Address:8000.

Inicie sesión en la página, debe crear su usuario administrador. Esto se puede hacer usando el comando:

docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser

Salida de muestra:

Ahora use el usuario creado para acceder al panel.

Si inicia sesión correctamente, verá esta página.

Ahora aquí, puedes navegar usando el panel a tu izquierda como se muestra.

Mientras está en este panel, puede agregar los dispositivos, conexiones, circuitos, IPAM, clústeres, fuente de alimentación y muchos otros elementos que se administrarán.

Esto brinda una implementación que con la herramienta Netbox IPAM, es muy fácil administrar un centro de datos agregando los dispositivos necesarios.

Para agregar un dispositivo, digamos un enrutador, agregará la información a continuación.

También puede crear tokens API con fecha de vencimiento, IP permitidas y redes para autenticarse en Netbox. Los tokens API se pueden crear como se muestra:

En caso de que desee detener todos los contenedores en ejecución, ejecute el siguiente comando:

$ docker compose stop
[+] Running 6/6
 ✔ Container netbox-docker-netbox-housekeeping-1  Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-worker-1        Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-1               Stopped                                                                                                                 1.2s
 ✔ Container netbox-docker-redis-cache-1          Stopped                                                                                                                 0.3s
 ✔ Container netbox-docker-postgres-1             Stopped                                                                                                                 0.4s
 ✔ Container netbox-docker-redis-1                Stopped                                                                                                                 0.3s

Puede quitar los contenedores como se muestra a continuación.

$ docker compose stop && docker compose rm

Salida de muestra:

[+] Running 6/0
 ✔ Container netbox-docker-netbox-worker-1        Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-housekeeping-1  Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-1               Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-redis-1                Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-postgres-1             Stopped                                                                                                                 0.0s
 ✔ Container netbox-docker-redis-cache-1          Stopped                                                                                                                 0.0s
? Going to remove netbox-docker-netbox-worker-1, netbox-docker-netbox-housekeeping-1, netbox-docker-netbox-1, netbox-docker-postgres-1, netbox-docker-redis-1, netbox-docker-redis-cache-1 Yes
[+] Running 6/0
 ✔ Container netbox-docker-netbox-worker-1        Removed                                                                                                                 0.0s
 ✔ Container netbox-docker-redis-cache-1          Removed                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-housekeeping-1  Removed                                                                                                                 0.0s
 ✔ Container netbox-docker-netbox-1               Removed                                                                                                                 0.0s
 ✔ Container netbox-docker-redis-1                Removed                                                                                                                 0.0s
 ✔ Container netbox-docker-postgres-1             Removed                                                                                                                 0.0s

Conclusión

¡Eso es! En este punto, todos podemos estar de acuerdo en que ejecutar la herramienta Netbox IPAM en Docker Containers es más fácil. Espero que haya logrado configurar el contenedor Docker de la herramienta Netbox IPAM.

Ver más guías:

  • Instale la herramienta NetBox IPAM y DCIM en Ubuntu
  • Cómo instalar NetBox IPAM en Debian Linux
  • Cómo instalar NetBox en Ubuntu 18.04 LTS
  • Instale NetBox IPAM en Rocky Linux 8|CentOS 8

Artículos relacionados: