Pular para conteúdo

Image title

COMO INSTALAR O NETBOX – SUA FERRAMENTA DE DOCUMENTAÇÃO DE REDE [DESCONTINUADO]

NetBox é um aplicativo da web de código aberto projetado para ajudar a gerenciar e documentar redes de computadores. Concebido inicialmente pela equipe de engenharia de rede da DigitalOcean, o NetBox foi desenvolvido especificamente para atender às necessidades dos engenheiros de rede e infraestrutura. Abrange os seguintes aspectos de gerenciamento de rede:

  • 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 onde estão instalados
  • Conexões – Rede, console e conexões de energia entre dispositivos
  • Virtualização – máquinas virtuais e clusters
  • Circuitos de dados – circuitos e provedores de comunicações de longa distância
  • Segredos – armazenamento criptografado de credenciais confidenciais

O que o NetBox não é

Embora o NetBox se esforce para cobrir muitas áreas de gerenciamento de rede, o escopo de seu conjunto de recursos é necessariamente limitado. Isso garante que o desenvolvimento se concentre na funcionalidade central e que o aumento do escopo seja razoavelmente contido. Para esse fim, pode ser útil fornecer alguns exemplos de funcionalidade que o NetBox não oferece:

  • Monitoramento de rede
  • Servidor dns
  • Servidor RADIUS
  • Gerenciamento de configurações
  • Gestão de instalações

Dito isso, o NetBox pode ser usado com grande efeito para preencher ferramentas externas com os dados de que precisam para executar essas funções.

Pré-requisitos

Para seguir este tutorial, você precisará de:

  • Um servidor Debian 10 e um firewall configurado com ufw.
  • configurado seguindo o tutorial de como instalar o NGINX no nosso blog
  • Um bloco de servidor do Nginx com o Let’s Encrypt configurado, o que pode ser feito seguindo o tutorial de como instalar o NGINX no nosso blog.

Instale os pacotes que serão necessários para o NETBOX.
1
2
3
4
apt install vim net-tools wget redis-server supervisor postgresql-contrib\
postgresql libpq-dev gcc python-minimal python3 python3-pip python3-venv\
python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev\
zlib1g-dev graphviz nginx redis python3-setuptools
logue-se com o usuário postgres, para poder criar o banco de dados.
su - postgres
Entre no terminal de comandos do postgres
1
2
3
4
5
psql
CREATE DATABASE netboxdb;
CREATE USER netboxuser WITH PASSWORD 'senha';
GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netboxuser;
/q

Verifique ser o serviço redis esta respondendo.

Deve retornar : PONG

Retorne ao usuario root

Atualize o pip
pip3 install --upgrade pip

Agora vamos baixar o projeto NetBox. Verifique em https://github.com/netbox-community/netbox/releases.

Entre no diretório tmp em seguida iremos farer o download, extrair, mover os mesmo para o diretório correto bem como ajustamos usuário e permissões de diretório.

1
2
3
4
5
6
7
cd /tmp
wget https://github.com/netbox-community/netbox/archive/refs/tags/v2.10.6.tar.gz
tar vxf v2.10.6.tar.gz
mv netbox*/ /opt/netbox
cd /opt/netbox/
adduser --system --group netbox
chown --recursive netbox /opt/netbox/netbox/media/
Execute o comando abaixo para gerar a SECRET KEY que iremos usar em seguida.
/opt/netbox/netbox/generate_secret_key.py

Copie o arquivo de configuração exemplo para ajustar com suas infomações
cp /opt/netbox/netbox/netbox/configuration.example.py /opt/netbox/netbox/netbox/configuration.py
nano /opt/netbox/netbox/netbox/configuration.py
Localize as linhas marcadas em laranja como exemplo abaixo e altere os valores.
ALLOWED_HOSTS = ['localhost','netbox.jbits.com.br']
DATABASE = {
    'NAME': 'netboxdb', # Database name
    'USER': 'netboxuser', # PostgreSQL username
    'PASSWORD': 'senha', # PostgreSQL password
    'HOST': 'localhost', # Database server
    'PORT': '', # Database port (leave blank for default)
    'CONN_MAX_AGE': 300, # Max database connection age
}
LOGIN_REQUIRED = True
Gerado com o comando
1
2
3
/opt/netbox/netbox/generate_secret_key.py

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

Instale os pacotes do py .
pip3 install -r /opt/netbox/requirements.txt
agora vamos partir finamente para a instalação do tão sonhado NETBOX
cd /opt/netbox/netbox/
python3 manage.py migrate

Crie seu usuário para o acesso web:
1
2
3
4
5
python3 manage.py createsuperuser
Username (leave blank to use 'root'): netbox
Email address: contato@jbits.com.br
Password: sua_senha
Password (again): sua_senha
python3 manage.py collectstatic

Vamos preparar nosso serviço web
pip3 install gunicorn

cat <<EOF | tee /opt/netbox/gunicorn_config.py
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'www-data'
EOF

cat <<EOF | tee /etc/supervisor/conf.d/netbox.conf
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
EOF

systemctl restart supervisor
Remova o arquivo defautl do servidor web (nginx), e agora iremos criar um novo, estou usando um domínio, caso esteja utilizando com IP privado apenas coloque um underline ou sei próprio IP.
rm /etc/nginx/sites-enabled/default
vim /etc/nginx/sites-available/netbox.conf
Ajuste o diretório do seu certificado.
server {
    listen 443 ssl;
    server_name netbox.jbits.com.br;
    ssl_certificate /etc/letsencrypt/live/netbox.jbits.com.br/fullchain.pem;

    ssl_certificate_key
    /etc/letsencrypt/live/netbox.jbits.com.br/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    client_max_body_size 25m;
    location /static/ {
        alias /opt/netbox/netbox/static/;
    }
    location / {
        proxy_pass http://localhost:8001;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
     }
    }
    server {
        listen 80;
        server_name netbox.jbits.com.br;
        return 301 https://$host$request_uri;
}
Verifique se seu arquivo de configuração do nginx está correto:
nginx -t
Crie o atalho do arquivo de configuração dentro do diretório enabled para que o mesmo seja carregado ao restart o nginx.
1
2
3
ln -s /etc/nginx/sites-available/netbox.conf
/etc/nginx/sites-enabled/
systemctl restart nginx

Agora acesse seu domínios “https://netbox.jbits.com.br/” ou “https://ip/” e entre com sua senha criada anteriormente.