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.
1 |
su - |
Instale os pacotes necessários que são pré-requisitos para a instalação do NetBox.
1 2 3 4 5 6 |
# 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.
1 |
# su - postgres |
Acesse o terminal do postgres com o comando a seguir:
1 |
$ psql |
Altere a senha conforme necessário.
1 2 3 4 5 |
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.
1 |
$ redis-cli ping |
Deverá retornar: PONG
Volte ao usuário root.
1 |
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.
1 2 3 4 5 6 |
# 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.
1 |
# /opt/netbox/netbox/generate_secret_key.py |
Exemplo:
1 |
T7TE07O$j^Jqf9(*20q8M5kG4%NBIci#gEEn0$wuw*qodT7Lfo |
Copie e ajuste o arquivo de configuração com suas informações.
1 2 |
# 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:
1 |
# /opt/netbox/upgrade.sh |
Crie um usuário administrador para o NetBox com o seguinte comando:
1 2 3 4 5 6 7 8 |
# 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.
1 2 3 4 5 6 7 8 |
# 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.
1 2 |
# 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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.
1 2 |
# 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.
1 2 |
# 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.
1 2 3 4 5 6 7 8 9 |
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.
1 2 3 4 5 6 |
(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.
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