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...

13 Resultados

  1. Daniel disse:

    Quem estiver com problemas no migrate onde apresenta erro no django-migrate, basta dar previlégios ao usuário do banco de dados ao schema “public”.

    GRANT ALL ON SCHEMA public TO netboxuser;
    GRANT ALL ON SCHEMA public TO public;
    ALTER USER netboxuser WITH SUPERUSER;
    \q

    Vlw

  2. Gabriel Silva disse:

    Alguem conseguiu alterar a lingaguem para portugues?

  3. 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’.

  4. 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

  5. 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 ?

  6. 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.

  7. 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 *