Instalação e Configuração do NetBox no Debian 12: Guia Completo


Netbox é um aplicativo web de código aberto desenvolvido para auxiliar na gestão e documentação de redes de computadores. Originalmente criado pela equipe de engenharia de rede da DigitalOcean, o NetBox foi desenhado para satisfazer as necessidades de engenheiros de rede e infraestrutura, cobrindo aspectos como:

  • Gerenciamento de endereço IP (IPAM) – Redes e endereços IP, VRFs e VLANs
  • Racks de equipamentos – Organizados por grupo e local
  • Dispositivos – Tipos de dispositivos e suas instalações
  • Conexões – Rede, console e conexões de energia entre dispositivos
  • Virtualização – Máquinas virtuais e clusters
  • Circuitos de dados – Circuitos e fornecedores de comunicações de longa distância
  • Segredos – Armazenamento criptografado de credenciais sensíveis

Requisitos:
Instalação do Debian 12 Bookworm

Para tornar-se root corretamente, utilize o comando abaixo com o sinal de hífen.

su -

Instale os pacotes necessários que são pré-requisitos para a instalação do NetBox.

# apt install gcc vim net-tools wget redis-server supervisor\
  postgresql-contrib postgresql libpq-dev \
  python3 python3-pip python3-venv python3-dev\
  build-essential libxml2-dev libxslt1-dev\
  libffi-dev libssl-dev zlib1g-dev graphviz\
  nginx redis python3-setuptools python3-gunicorn

Faça login como usuário postgres para criar o banco de dados necessário.

# su - postgres

Acesse o terminal do postgres com o comando a seguir:

$ psql

Altere a senha conforme necessário.

postgres=# CREATE DATABASE netboxdb;
postgres=# CREATE USER netboxuser WITH PASSWORD 'sua_senha';
postgres=# GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netboxuser;
postgres=# ALTER USER netboxuser WITH SUPERUSER;
postgres=# \q

Verifique se o serviço redis está funcionando corretamente.

$ redis-cli ping

Deverá retornar: PONG

Volte ao usuário root.

exit

Prossiga com o download do projeto NetBox verificando se há uma nova versão disponível no GitHub. Acesse o diretório temporário, faça o download do NetBox, extraia o arquivo, mova para o diretório correto e ajuste as permissões.

# cd /tmp
# wget https://github.com/netbox-community/netbox/archive/refs/tags/v3.7.4.tar.gz
# tar vxf v3.7.4.tar.gz
# mv netbox*/ /opt/netbox
# cd /opt/netbox/
# chown www-data: /opt/netbox/netbox/media/ -R

Gere a SECRET KEY que será usada posteriormente.

# /opt/netbox/netbox/generate_secret_key.py 

Exemplo:

T7TE07O$j^Jqf9(*20q8M5kG4%NBIci#gEEn0$wuw*qodT7Lfo

Copie e ajuste o arquivo de configuração com suas informações.

# cp /opt/netbox/netbox/netbox/configuration_example.py /opt/netbox/netbox/netbox/configuration.py
# vim /opt/netbox/netbox/netbox/configuration.py

Edite o arquivo de configuração como no exemplo a seguir:

ALLOWED_HOSTS = ['localhost','netbox.remontti.com.br']

DATABASE = {
    'NAME': 'netboxdb',
    'USER': 'netboxuser',
    'PASSWORD': 'sua_senha',
    'HOST': 'localhost',
    'PORT': '',
    'CONN_MAX_AGE': 300,
}

SECRET_KEY = 'T7TE07O$j^Jqf9(*20q8M5kG4%NBIci#gEEn0$wuw*qodT7Lfo'

LOGIN_REQUIRED = True

Proceda com a instalação executando:

# /opt/netbox/upgrade.sh

Crie um usuário administrador para o NetBox com o seguinte comando:

# source /opt/netbox/venv/bin/activate
(venv) # python3 /opt/netbox/netbox/manage.py createsuperuser
Username: remontti
Email address: noc@remontti.com.br
Password: xxxx
Password (again): xxxxx
Superuser created successfully.
(venv) # deactivate

Configure o servidor web (nginx) e inicie os serviços do NetBox.

# cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
# cp /opt/netbox/contrib/*.service /etc/systemd/system/
# sed -i 's/User=netbox/User=root/' /etc/systemd/system/netbox*.service
# sed -i 's/Group=netbox/Group=root/' /etc/systemd/system/netbox*.service
# systemctl daemon-reload
# systemctl enable netbox netbox-rq netbox-housekeeping
# systemctl start netbox netbox-rq netbox-housekeeping
# systemctl status netbox netbox-rq

Configure o nginx removendo o arquivo default e criando um novo arquivo de configuração.

# rm /etc/nginx/sites-enabled/default
# vim /etc/nginx/sites-available/netbox.conf

Insira a configuração necessária no arquivo `netbox.conf` do nginx.

server {
    listen 80;
    listen [::]:80;
 
    server_name netbox.remontti.com.br;

    client_max_body_size 25m;
 
    location /static/ {
        alias /opt/netbox/netbox/static/;
    }
 
    location / {
        proxy_pass http://localhost:8001;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Crie um link simbólico para ativar a configuração do nginx e reinicie o serviço.

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

Acesse seu NetBox pelo navegador em “https://netbox.remontti.com.br/” ou “https://ip/” e faça login com a senha criada.

Instale o plugin topology-views.

# source /opt/netbox/venv/bin/activate
(venv) # vim /opt/netbox/netbox/netbox/configuration.py

Configure o plugin `netbox_topology_views` no arquivo de configuração.

PLUGINS = ["netbox_topology_views"]

PLUGINS_CONFIG = {
    'netbox_topology_views': {
        'static_image_directory': 'netbox_topology_views/img',
        'allow_coordinates_saving': True,
        'always_save_coordinates': True
    }
}

Conclua a instalação do plugin e atualize as configurações.

(venv) # cd /opt/netbox/netbox
(venv) # pip3 install netbox-topology-views
(venv) # python3 manage.py migrate netbox_topology_views
(venv) # python3 manage.py collectstatic --no-input
# deactivate
# systemctl restart netbox netbox-rq netbox-housekeeping

Agradecimentos e convite para doação:
Se quiser fazer uma doação para o café, ficarei muito feliz pelo seu reconhecimento!

Participe do canal no telegram para ficar sempre atualizado. Agradeço por qualquer feedback nos comentários ou contato direto.

Fonte: Documentação Oficial do NetBox

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

12 Resultados

  1. Gabriel Silva disse:

    Alguem conseguiu alterar a lingaguem para portugues?

  2. Derick Claraval disse:

    tive um problema na questao do plugin topology-views., quando habilito ele da erro e para de funcionar o netbox-housekeeping.
    ago 08 14:57:21 proxy python[893]: return _bootstrap._gcd_import(name[level:], package, level)
    ago 08 14:57:21 proxy python[893]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ago 08 14:57:21 proxy python[893]: File “/opt/netbox/venv/lib/python3.11/site-packages/netbox_topology_views/urls.py”, line 4, in
    ago 08 14:57:21 proxy python[893]: from . import models, views
    ago 08 14:57:21 proxy python[893]: File “/opt/netbox/venv/lib/python3.11/site-packages/netbox_topology_views/views.py”, line 31, in
    ago 08 14:57:21 proxy python[893]: from utilities.htmx import htmx_partial
    ago 08 14:57:21 proxy python[893]: ImportError: cannot import name ‘htmx_partial’ from ‘utilities.htmx’ (/opt/netbox/netbox/utilities/htmx.py)
    ago 08 14:57:22 proxy systemd[1]: netbox-housekeeping.service: Main process exited, code=exited, status=1/FAILURE
    ago 08 14:57:22 proxy systemd[1]: netbox-housekeeping.service: Failed with result ‘exit-code’.

  3. Thiago Matheus disse:

    só consegui abrir com esse comando

    source /opt/netbox/venv/bin/activate

    cd /opt/netbox/netbox

    python3 manage.py runserver 0.0.0.0:8000 –insecure

  4. Vitor Henrique disse:

    Ate que acho que consegui instalar sem nenhuma mensagem de erro, mas na hora de acessar via domínio ou IP aparece que a conexão foi recusada, será que poderia ser o firewall no debian ?

  5. João Vitor disse:

    Boa noite prezado Rudimar! Teria algum detalhe a se atentar na hora de instalar? E outro detalhe, fiquei meio confuso se já instala algum certificado ssl para funcionar por domínio, e tambem vi que no dia 4 desse mês o netbox atualizou de novo. Teria algum detalhe para se atentar na hora de instalar o serviço? Testei por uma primeira vez e não obtive êxito, mas irei tentar novamente.

  6. Renato disse:

    trabalho numa empresa que faz quase bilhão só usando opensource…. netbox inclusive

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *