Ferramentas do usuário

Ferramentas do site


netbox

Links de auxílio:

https://www.howtoforge.com/how-to-install-netbox-irm-on-debian-12/
https://wiki.freebsd.org/Ports/net-mgmt/netbox
https://netboxlabs.com/docs/netbox/en/stable/installation/5-http-server/
https://netboxlabs.com/docs/netbox/en/stable/installation/3-netbox/
https://github.com/netbox-community/netbox/releases

Procedimento para instalação do NetBox no FreeBSD

1 - Vamos atualizar o pkg:

# pkg update

2 - Precisaremos instalar os arquivos iniciais necessários do NetBox:

# pkg install -y python39 python3 py311-pip py311-virtualenv postgresql16-server postgresql16-client redis nginx git gcc gmake libxml2 libxslt jpeg-turbo graphviz

3 - Vamos configurar o banco de dados instalado. Vamos inicializar e iniciar o PostgreSQL:

# sysrc postgresql_enable="YES"
# service postgresql initdb
# service postgresql start

4 - Para configurar as permissões de acesso remoto ao banco, você pode configurar o arquivo /var/db/postgres/data16/pg_hba.conf:

# ee /var/db/postgres/data16/pg_hba.conf

– procure as linhas abaixo:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

# IPv6 local connections:
host    all             all             ::1/128                 trust

OBS: Nas linhas acima você irá configurar os IPs que podem acessar seu banco e o método de autenticação. No meu caso, vou dar um exemplo liberando o acesso vindo de qualquer rede com autenticação por senha:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust


# IPv4 local connections:
#host    all             all             127.0.0.1/32            trust

host    all             all             0.0.0.0/0            md5	# Modificada

# IPv6 local connections:
host    all             all             ::1/128                 trust

OBS: As linhas modificadas em questão especificam uma regra de acesso para clientes que se conectam ao servidor usando o protocolo “host”, permitindo que todos os usuários (representados por “all”) se conectem a todos os bancos de dados (também “all”) a partir de qualquer endereço IP (representado por “0.0.0.0/0”). A autenticação será realizada usando o método “md5”, que é uma forma segura de autenticação baseada em senha que armazena as senhas como um hash criptográfico em vez de texto simples. : ===

– Verificar se as configurações do vhost estão corretas e se ele está ativo:

5 - Após as alterações, reinicie o serviço do banco de dados e pode efetuar os testes com seu cliente:

/usr/local/etc/rc.d/postgresql restart
2023-03-31 17:24:19.626 -03 [97839] LOG:  ending log output to stderr
2023-03-31 17:24:19.626 -03 [97839] HINT:  Future log output will go to log destination "syslog".

6 - Agora vamos criar o banco de dados, usuário e permissões ao BD:

# su - postgres
$ 
$ psql
psql (16.6)
Type "help" for help.

postgres=# 
postgres=# CREATE DATABASE netbox;
CREATE DATABASE
postgres=# CREATE USER netbox WITH ENCRYPTED PASSWORD 'senha_segura';
CREATE ROLE
postgres=# ALTER ROLE netbox SET client_encoding TO 'utf8';
ALTER ROLE
postgres=# ALTER ROLE netbox SET default_transaction_isolation TO 'read committed';
ALTER ROLE
postgres=# ALTER ROLE netbox SET timezone TO 'UTC';
ALTER ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q

7 - Vamos configurar o Redis:

# sysrc redis_enable="YES"
# service redis start

8 - Vamos ver se os serviços estão ativos:

# sockstat -4l
USER     COMMAND    PID   FD  PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
redis    redis-serv  8929 6   tcp4   127.0.0.1:6379        *:*
postgres postgres    8782 7   tcp4   127.0.0.1:5432        *:*

9 - Vamos instalar o NetBox pelo PKG:

# pkg install netbox-4.1.11

OBS: No meu caso essa era a versão mais recente, instale a que estiver disponível para você. A instalação irá demorar um pouco dependendo das configurações do seu computador.

10 - Após o termino da instalação você deverá copiar a pasta do NetBox para o /usr/local/:

# cp -R /usr/local/share/netbox/ /usr/local/netbox/

10 - Entre no diretório que foi copiado e edite o seguinte arquivo /usr/local/netbox/netbox/, confome as instruções abaixo:

# cd /usr/local/netbox/netbox/
# cp configuration_example.py configuration.py
# ee configuration.py

– Edite as seguintes informações:


ALLOWED_HOSTS = ['*']

.
.
.

## Informações do seu banco conforme criado


DATABASE = {
    'ENGINE': 'django.db.backends.postgresql',  # Database engine
    'NAME': 'netbox',         # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'sua_senha_aqui',           # PostgreSQL password
    'HOST': 'localhost',      # Database server
    'PORT': '5432',               # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,      # Max database connection age
}

— Feche e salve o arquivo

11 - Vamos precisar gerar uma chave secreta:

# python3 -c 'import secrets; print(secrets.token_urlsafe(50))'
7lIv96OGPVwQkPSMr-j_EvYtuTt9G6-Jkt-GS-PX2mo1M_ZGjnamEbRRvMsuvNEekOQ

– Essa chave você irá colocar na opção SECRET_KEY = do configuration.py, siga os passos abaixo:

# ee configuration.py
.
.
.

SECRET_KEY = '7lIv96OGPVwQkPSMr-j_EvYtuTt9G6-Jkt-GS-PX2mo1M_ZGjnamEbRRvMsuvNEekOQ'

11 - Antes de iniciar o NetBox vamos fazer uma configuração novamente no banco de dados. Estou fazendo essas modificações novamente, pois ao tentar iniciar a migração recebi um erro de permissão e só consegui resolver com os passos abaixo. Você pode tentar ir direto para o passo 12, caso receba uma mensagem de erro de permissão no BD, execute os passos abaixo:


--- Logar no BD postgres
# su - postgres
$ psql


--- Alterar o dono do banco de dados para netbox
postgres=# ALTER DATABASE netbox OWNER TO netbox;
ALTER DATABASE

--- Garantir que o usuário netbox possa conectar ao banco
postgres=# GRANT CONNECT ON DATABASE netbox TO netbox;
GRANT

--- Corrigir permissões no schema public
postgres=# REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE
postgres=# REVOKE ALL ON SCHEMA public FROM netbox;
REVOKE
postgres=# GRANT USAGE, CREATE ON SCHEMA public TO netbox;
GRANT
postgres=# GRANT ALL PRIVILEGES ON SCHEMA public TO netbox;
GRANT
postgres=# ALTER SCHEMA public OWNER TO netbox;
ALTER SCHEMA

--- Conceder permissões para todas as tabelas e sequências no schema public
postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO netbox;
GRANT
postgres=# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO netbox;
GRANT

--- Configurar privilégios padrão para futuras tabelas e sequências
postgres=# ALTER DEFAULT PRIVILEGES FOR ROLE netbox IN SCHEMA public GRANT ALL ON TABLES TO netbox;
ALTER DEFAULT PRIVILEGES
postgres=# ALTER DEFAULT PRIVILEGES FOR ROLE netbox IN SCHEMA public GRANT ALL ON SEQUENCES TO netbox;
ALTER DEFAULT PRIVILEGES

---Garantir que o usuário netbox tenha controle total sobre o banco
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT

--- Sair do PostgreSQL
postgres=# \q
$ exit

12 - Agora vamos inicializar o processo de migração do NetBox:

# cd /usr/local/netbox/
# python3 manage.py migrate

13 - Criação do usuário:

# python3 manage.py createsuperuser
Username: Administrator		# você pode usar o usuário que preferir
Email address: 
Password: 
Password (again):
Superuser created successfully.

14 - Agora vamos coletar arquivos estáticos:

# python3 manage.py collectstatic --no-input

15 - Testar o NetBox:

# python3 manage.py runserver 0.0.0.0:8000 --insecure

—OBS: Tudo deverá executar corretamente, acesse http://IP_DO_SERVIDOR:8000 e faça login com o usuário criado.

16 - Execute o NetBox como serviço. O NetBox pode ser executado como um serviço usando os scripts rc fornecidos que são instalados por padrão através da opção dos exemplos que vem junto da instalação com o PKG. Copie o script e execute os comandos abaixo:

# cp /usr/local/share/examples/netbox/netboxrc.sample /usr/local/etc/rc.d/netbox
# chmod 555 /usr/local/etc/rc.d/netbox
# sysrc netbox_enable="YES"

17 - Antes de executar o NetBox, vamos precisar editar duas linhas do script copiado:

# ee /usr/local/etc/rc.d/netbox

.
.
.
#netbox_path=/usr/local/share/netbox		# Acrescente o "#"
netbox_path=/usr/local/netbox			# Coloque o endereço do diretório de onde o seu netbox está rodando

.
.
.

#netbox_bind=${netbox_bind:-localhost:8001}	# Acrescente o "#"
netbox_bind=${netbox_bind:-0.0.0.0:8001}	# Coloque o endereço 0.0.0.0 ou o endereço do seu servidor Netbox

18 - Ainda, antes de executar o NetBox, vamos precisar ativar um outro serviço dele, o netbox_rq. O NetBox RQ worker é um serviço que processa tarefas assíncronas no NetBox, como atualizações de cache e tarefas em segundo plano. Se ele não estiver ativado corretamente, algumas funcionalidades do NetBox podem não funcionar como esperado: ===:

# cp /usr/local/share/examples/netbox/netbox_rq.sample /usr/local/etc/rc.d/netbox_rq
# chmod 555 /usr/local/etc/rc.d/netbox_rq
# sysrc netbox_rq_enable="YES"
# service netbox_rq start

19 - Antes de executar o NetBox, vamos precisar editar uma linha do script copiado:

# ee /usr/local/etc/rc.d/netbox_rq

.
.
.
#command_args="/usr/local/share/netbox/manage.py rqworker"
command_args="/usr/local/netbox/manage.py rqworker"

20 - Agora podemos inicializar o serviço:

# service netbox start

21 - O serviço após inicializado irá funcionar, porém pode acontecer alguns erros, pois ele é configurado para ficar atrás de um proxy. Na instalação padrão dele, ele já instala o NGINX. Siga os passos abaixo para ativá-lo:

— Vamos primeiro entrar no diretório /usr/local/etc/nginx/ e depois editar o arquivo nginx.conf:

# cd /usr/local/etc/nginx/nginx.conf
# ee nginx.conf

— No final do arquivo você irá por as seguintes linhas e substituir as informações de acordo com seu servidor:


server {
    listen 8000					# porta que receberá as requisições
#    server_name nome_do_seu_servidor;

    client_max_body_size 25m;

    location /static/ {
        alias /usr/local/netbox/static/;	# diretório static dentro da pasta do netbox
    }

    location / {
        proxy_pass http://127.0.0.1:8001;	# porta que está rodando de fato o netbox
        proxy_set_header Host $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;
    }
}


}

22 - Após isto basta reiniciar o serviço do NGINX e testar no browser se está conseguindo acessar seu servidor NETBOX:

# service nginx restart
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Stopping nginx.
Waiting for PIDS: 1889.
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.

23 - Se você seguiu todos os passos o serviço deve estar funcionando, basta testá-lo no navegador, lembrando que a porta que você deve usar para tentar acessar é que foi configurada no NGINX, ele que irá redirecionar as requisições para o netbox:


Deixe sua contribuição

Insira seu comentário:
 
netbox.txt · Última modificação: 2025/02/19 13:43 por dhiemeson.nascimento