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

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

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

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

1 # su - postgres
Copiar

Acesse o terminal do postgres com o comando a seguir:

1 $ psql
Copiar

Altere a senha conforme necessário.

1 postgres=# CREATE DATABASE netboxdb;
2 postgres=# CREATE USER netboxuser WITH PASSWORD 'sua_senha';
3 postgres=# GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netboxuser;
4 postgres=# ALTER USER netboxuser WITH SUPERUSER;
5 postgres=# \q
Copiar

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

1 $ redis-cli ping
Copiar

Deverá retornar: PONG

Volte ao usuário root.

1 exit
Copiar

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 # cd /tmp
2 # wget https://github.com/netbox-community/netbox/archive/refs/tags/v3.7.4.tar.gz
3 # tar vxf v3.7.4.tar.gz
4 # mv netbox*/ /opt/netbox
5 # cd /opt/netbox/
6 # chown www-data: /opt/netbox/netbox/media/ -R
Copiar

Gere a SECRET KEY que será usada posteriormente.

1 # /opt/netbox/netbox/generate_secret_key.py 
Copiar

Exemplo:

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

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

1 # cp /opt/netbox/netbox/netbox/configuration_example.py /opt/netbox/netbox/netbox/configuration.py
2 # vim /opt/netbox/netbox/netbox/configuration.py
Copiar

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:

1 # /opt/netbox/upgrade.sh
Copiar

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

1 # source /opt/netbox/venv/bin/activate
2 (venv) # python3 /opt/netbox/netbox/manage.py createsuperuser
3 Username: remontti
4 Email address: [email protected]
5 Password: xxxx
6 Password (again): xxxxx
7 Superuser created successfully.
8 (venv) # deactivate
Copiar

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

1 # cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
2 # cp /opt/netbox/contrib/*.service /etc/systemd/system/
3 # sed -i 's/User=netbox/User=root/' /etc/systemd/system/netbox*.service
4 # sed -i 's/Group=netbox/Group=root/' /etc/systemd/system/netbox*.service
5 # systemctl daemon-reload
6 # systemctl enable netbox netbox-rq netbox-housekeeping
7 # systemctl start netbox netbox-rq netbox-housekeeping
8 # systemctl status netbox netbox-rq
Copiar

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

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

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

1 server {
2     listen 80;
3     listen [::]:80;
4  
5     server_name netbox.remontti.com.br;
6 
7     client_max_body_size 25m;
8  
9     location /static/ {
10         alias /opt/netbox/netbox/static/;
11     }
12  
13     location / {
14         proxy_pass http://localhost:8001;
15         proxy_set_header Host $http_host;
16         proxy_set_header X-Real-IP $remote_addr;
17         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
18         proxy_set_header X-Forwarded-Proto $scheme;
19     }
20 }
Copiar

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

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

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 # source /opt/netbox/venv/bin/activate
2 (venv) # vim /opt/netbox/netbox/netbox/configuration.py
Copiar

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

1 PLUGINS = ["netbox_topology_views"]
2 
3 PLUGINS_CONFIG = {
4     'netbox_topology_views': {
5         'static_image_directory': 'netbox_topology_views/img',
6         'allow_coordinates_saving': True,
7         'always_save_coordinates': True
8     }
9 }
Copiar

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

1 (venv) # cd /opt/netbox/netbox
2 (venv) # pip3 install netbox-topology-views
3 (venv) # python3 manage.py migrate netbox_topology_views
4 (venv) # python3 manage.py collectstatic --no-input
5 # deactivate
6 # systemctl restart netbox netbox-rq netbox-housekeeping
Copiar
Este blog utiliza cookies para garantir uma melhor experiência. Se você continuar assumiremos que você está satisfeito com ele.