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.
Alguem conseguiu alterar a lingaguem para portugues?
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’.
usa a versão 4.1.4 da netbox
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
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 ?
Também estou com o mesmo problema aqui, reinstalei umas 5x já, e segui passo-a-passo…
Em /opt/netbox/netbox/netbox/configuration.py coloca da seguinte forma, creio que vai resolver pra você:
ALLOWED_HOSTS = [‘*’]
Espero ter ajudado
Tambem aqui com o mesmo erro, nao aparece nada, ja testei de tudo.
Rapaz depois de ter feito tudo testei esse passo e deu bom
Configure o servidor web (nginx) e inicie os serviços do NetBox.
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.
trabalho numa empresa que faz quase bilhão só usando opensource…. netbox inclusive
Muito bom… Parabéns