Como instalar o Netbox no Ubuntu 22.04
O Netbox é uma ferramenta desenvolvida para auxiliar profissionais da área de infraestrutura e redes na organização e gerência através de uma documentação bem detalhada. Vários recursos como IPAM para blocos de IPv4 e IPv6, VRFs, VLAN, Circuitos, Wireless, ambiente de virtualização (Máquinas Virtuais), modelagem de rack etc.
Uma das filosofias está diretamente ligada a ideia de replicar o mundo real no desenvolvimento da documentação. Além das funcionalidades nativas é possível instalar plugins para expandir a sua capacidade de trabalho.
Cenário e Requisitos
Nosso cenário está montado com Ubuntu Server na versão 22.04 com todos os pacotes atualizados.
Python 3.8 ou superior
PostgreSQL 11 ou superior
Redis 4.0 ou superior
O tutorial é extenso e possui muitos detalhes técnicos, a partir daqui você conseguirá realizar a instalação e deixar funcionando em produção normalmente. Mas é preciso estar atento para a execução correta de cada comando para evitar problemas.
1 – Atualize o sistema e realize um upgrade.
Antes de realizar qualquer procedimento é importante estar com os repositórios e o sistema totalmente atualizados.
# sudo apt update
# sudo apt upgrade
2 – Instale o PostgreeSQL na versão 11 ou superior.
O PostgreeSQL servirá como o principal banco de dados do Netbox.
# sudo apt install -y postgresql
Confira se o PostgreeSQL instalado está na versão 11 ou superior.
# psql -V
Você deverá ver uma saída parecida com o exemplo abaixo.
psql (PostgreSQL) 14.8 (Ubuntu 14.8-0ubuntu0.22.04.1)
3 – Conecte ao postgres psql para criar o banco de dados, usuário e atribuir as permissões.
# sudo -u postgres psql
Crie o banco de dados seguindo o exemplo abaixo, lembre de usar uma senha segura pois estou usando o exemplo da documentação oficial.
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD '}T]XoV"BR/]7ukM:lIzIy$U=';
ALTER DATABASE netbox OWNER TO netbox;
\q
Observação: Os dois comandos abaixo deverão ser executados para a versão 15 ou superior do PostgreSQL.
\connect netbox;
GRANT CREATE ON SCHEMA public TO netbox;
Agora vamos testar se tudo está funcionando corretamente, conecte-se ao banco de dados.
# psql --username netbox --password --host localhost netbox
Execute o \conninfo para mais informações sobre a conexão.
You are connected to database "netbox" as user "netbox" on host "localhost" (address "::1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Para sair basta executar o \q no terminal.
4 – Instalando o Redis.
O Redis é utilizado para o armazenamento em cache e enfileiramento de valor-chave na memória.
# sudo apt install -y redis-server
Confira se a versão é superior a 4.0
# redis-server -v
Agora veja se o status do serviço retorna a resposta PONG. Se sim, então está funcionando tudo normal.
# redis-cli ping
Se você está em busca de uma infraestrutura de nuvem nacional e de confiança, a Cactos Hospedagem oferece servidores VPS Cloud para o Netbox, com robustez, alta disponibilidade e segurança. Converse com um de nossos analistas clicando aqui.
5 – Instalando o python 3.
O python é a principal linguagem de desenvolvimento utilizada para criar o Netbox, por isso precisamos dele instalado.
# sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
Verifique se a versão 3.8 ou superior foi instalada.
# python3 -V
6 – Baixe a última versão estável do Netbox.
Para instalação é recomendado que se use uma versão estável e o download seja feito do repositório oficial no Github.
Link do repositório: https://github.com/netbox-community/netbox/releases
Acesse o diretório /tmp e baixe o arquivo tar.gz.
# cd /tmp
# sudo wget https://github.com/netbox-community/netbox/archive/refs/tags/v3.5.8.tar.gz
Extraia o arquivo que no meu exemplo é o v3.5.8.tar.gz para o diretório /opt.
# sudo tar -xzf v3.5.8.tar.gz -C /opt
Agora vamos criar um link simbólico do diretório extraído para acessarmos de maneira mais fácil.
# sudo ln -s /opt/netbox-3.5.8/ /opt/netbox
7 – Criando usuário no sistema
É importante ter um usuário configurado no sistema para seja possível o acesso a configurações e execução de processos do Netbox.
Crie o usuário e atribua as permissões dos diretórios ao usuário criado.
# sudo adduser --system --group netbox
# sudo chown --recursive netbox /opt/netbox/netbox/media/
# sudo chown --recursive netbox /opt/netbox/netbox/reports/
# sudo chown --recursive netbox /opt/netbox/netbox/scripts/
8 – Alterando o arquivo de configuração
O próximo passo será alterar os parâmetros no arquivo de configuração, acesse o diretório do Netbox e copie o arquivo de configuration_example.py para configuration.py.
# cd /opt/netbox/netbox/netbox/
# sudo cp configuration_example.py configuration.py
Antes de editar o arquivo de configuração, vamos gerar uma chave secreta assim otimizamos o processo de instalação.
Gere a secret_key.
# python3 ../generate_secret_key.py
A saída deverá ser assim:
YqRiPW*#J+NQY$#$05flQ9W62nrzeOB$Y1dxgZDE&xL!&W$3wR
Salve essa chave secreta pois iremos utilizar ela no arquivo de configuração.
Agora sim abra o arquivo configuration.py com o seu editor de textos preferido e altere os parâmetros abaixo:
Parâmetro 1.
Coloque o IP do seu servidor, isso indica que apenas ele terá as devidas permissões de acesso aos dados do banco do Netbox.
ALLOWED_HOSTS = ['IP-DO-SEU-SERVIDOR']
Parâmetro 2.
Altere o nome do banco de dados, usuário e senha que foram criados no inicio do processo.
DATABASE
DATABASE = {
'ENGINE': 'django.db.backends.postgresql', # Database engine
'NAME': 'NOME-DO-BANCO', # Nome do banco de dados que você criou
'USER': 'USUÁRIO-DO-BANCO', # Usuário do banco de dados que você criou
'PASSWORD': 'SENHA-DO-USUARIO-DO-BANCO', # Senha do usuário do banco de dados
'HOST': 'localhost', # Servidor do banco de dados
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
Parâmetro 3.
Insira a secret key que foi gerada anteriormente.
SECRET_KEY = 'YqRiPW*#J+NQY$#$05flQ9W62nrzeOB$Y1dxgZDE&xL!&W$3wR'
Parâmetro 4.
Troque de False para True, isso faz com que ao acessar a página do Netbox um usuário e senha seja exigido para a visualização do painel.
LOGIN_REQUIRED = True
9 – Requisitos Opcionais
O Netbox suporta pacotes extras opcionais, os pacotes devem estar listados no arquivo local_requirements.txt. Vamos adicionar um sistema de arquivos remoto instalando a biblioteca django-sotrages.
# sudo sh -c "echo 'django-storages' >> /opt/netbox/local_requirements.txt"
10 – Atualizando o script de instalação
Execute o script de atualização para conseguir continuar com a instalação. Aqui processos como a criação de um ambiente virtual do python, pacotes necessários do python, migração do schema do banco de dados etc serão executados.
# sudo /opt/netbox/upgrade.sh
Se você está em busca de uma infraestrutura de nuvem nacional e de confiança, a Cactos Hospedagem oferece servidores VPS Cloud para o Netbox, com robustez, alta disponibilidade e segurança. Converse com um de nossos analistas clicando aqui.
11 – Criando o super usuário padrão
Por padrão não existe uma conta de usuário configurada para o Netbox, por isso agora iremos acessar o ambiente virtual do python para criar um super usuário.
Acesse o ambiente virtual (venv).
# source /opt/netbox/venv/bin/activate
Acesse o diretório para criar o usuário.
# cd /opt/netbox/netbox
Crie o usuário inserindo o comando e os dados pedidos abaixo.
Se quiser continuar usando o usuário padrão do seu Linux apenas pressione enter, depois informe a senha e e-mail preferidos.
# python3 manage.py createsuperuser
12 – Configurando a tarefa de limpeza
Ainda dentro do ambiente virtual do python, vamos configurar uma tarefa de limpeza de tarefas comuns do Netbox.
# sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
13 – Testando o ambiente
Para saber se o ambiente está funcionando corretamente, vamos iniciar um servidor de teste da aplicação.
# python3 manage.py runserver 0.0.0.0:8000 --insecure
Abra o navegador e coloque http://IP:8000 para abrir a página de login do Netbox.
Para parar o servidor de teste, pressione ctrl + c.
Saia do ambiente virtual do python para continuarmos com a execução da instalação.
# deactivate
14 – Editando o Gunicorn
Vamos agora configurar o Gunicorn que é um servidor web próprio para servir aplicativos python como é o caso do Netbox.
Durante o processo de instalação do Netbox ele instala o Gunicorn automaticamente, então vamos precisar alterar o local do arquivo de configuração.
Vamos copiar o arquivo de configuração para conseguirmos utilizar corretamente sem problemas.
sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
Para ser possível a administração do processo do Gunicorn e do Gunicorn , vamos precisar copiar os arquivos de serviço para o diretório do Gunicorn , logo depois reinicie o serviço do systemd.
# sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
# sudo systemctl daemon-reload
Inicie o serviços e confira se o status está Active running.
# sudo systemctl start netbox netbox-rq
# sudo systemctl enable netbox netbox-rq
# systemctl status netbox.service
15 – Servidor HTTP Apache
Apesar de possuir o Gunicorn ele não é um servidor web completo como NGINX ou Apache, em nosso cenário iremos instalar o Apache2 para trabalhar como um servidor web e implementar um Certificado SSL auto-assinado, mas se possível utilize um certificado uma autoridade confiável.
Gere o Certificado SSL auto-assinado.
# sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
Após o comando alguns detalhes serão solicitados, insira eles para conseguir gerar corretamente.
Instale o servidor web Apache.
# sudo apt install -y apache2
Copie o arquivo de configuração padrão do apache para o diretório sites-available e já passando o parâmetro de alteração do nome.
# sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
Habilite os módulos de suporte ao SSL, arquivo de configuração netbox e depois reinicie o serviço do Apache.
# sudo a2enmod ssl proxy proxy_http headers rewrite
# sudo a2ensite netbox
# sudo systemctl restart apache2
Finalmente, acesso o navegador web com o IP do seu servidor e confirme se a tela de login do Netbox irá aparecer para você.
Para continuar acompanhando os nossos conteúdos, adicione o blog nos favoritos e não esqueça de nos seguir em nossas redes sociais. Até a próxima!