NetBox è un software applicativo web gratuito e opensource che può essere utilizzato per gestire e documentare reti di computer. È appositamente progettato per gestire l'indirizzo IP e l'infrastruttura del data center tramite un browser web. NetBox è scritto nel framework Django Python e utilizza PostgreSQL per il database. Con NetBox puoi gestire e documentare facilmente macchine virtuali e cluster, circuiti dati, rete, console e connessioni di alimentazione dalla posizione centrale.
In questo tutorial spiegheremo come installare NetBox sul server Ubuntu 18.04.
Requisiti
- Un server che esegue Ubuntu 18.04.
- È stata impostata una password di root sul tuo server.
Per iniziare
Innanzitutto, aggiorna il pacchetto del tuo sistema all'ultima versione con il seguente comando:
apt-get update -y
apt-get upgrade -y
Una volta aggiornati tutti i pacchetti, riavvia il sistema per applicare tutte le modifiche alla configurazione.
Successivamente, dovrai installare le dipendenze necessarie per eseguire NetBox. Puoi installarli tutti con il seguente comando:
apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y
Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.
Installa e configura PostgreSQL
Successivamente, dovrai installare PostgreSQL sul tuo server. Per impostazione predefinita, l'ultima versione di PostgreSQL non è disponibile nel repository predefinito di Ubuntu 18.04. Quindi, dovrai aggiungere il repository PostgreSQL al tuo sistema.
Innanzitutto, scarica e aggiungi la chiave GPG con il seguente comando:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Successivamente, aggiungi il repository con il seguente comando:
nano /etc/apt/sources.list.d/postgres.list
Aggiungi la seguente riga:
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main
Salva e chiudi il file. Quindi, aggiorna il repository e installa PostgreSQL con il seguente comando:
apt-get update -y
apt-get install postgresql postgresql-contrib -y
Una volta installato, controlla lo stato di PostgreSQL con il seguente comando:
systemctl status postgresql
Dovresti vedere il seguente output:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago Main PID: 13552 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1098) CGroup: /system.slice/postgresql.service Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS... Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.
Successivamente, dovrai creare un database e un utente per NetBox. Innanzitutto, accedi alla shell di PostgreSQL con il seguente comando:
su - postgres
[email protected]:~$ psql
Uscita:
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1)) Type "help" for help.
Quindi, crea un database e un utente per NetBox con il seguente comando:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Quindi, concedi tutti i privilegi al NetBox con il seguente comando:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Infine, esci dalla shell di PostgreSQL con il seguente comando:
postgres=#exit
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura NetBox
È possibile scaricare l'ultima versione di NetBox nella directory /opt con il seguente comando:
cd /opt
git clone -b master https://github.com/digitalocean/netbox.git
Quindi, cambia la directory in netbox e genera Django SECRET Key:
cd /opt/netbox/netbox/netbox/
./generate_secret_key.py
Dovresti vedere la chiave generata nel seguente output:
+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$
Quindi, rinomina il file di configurazione predefinito con il seguente comando:
mv configuration.example.py configuration.py
Quindi, apri il file di configurazione e definisci i dettagli del database e la chiave segreta:
nano configuration.py
Apporta le seguenti modifiche:
#Replace your-server-ip with your server IP address: # Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local'] ALLOWED_HOSTS = ['your-server-ip'] # PostgreSQL database configuration. DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'password', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) } SECRET_KEY = '+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$'
Salva e chiudi il file quando hai finito.
Quindi, installa tutte le dipendenze richieste da NetBox con il seguente comando:
pip3 install -r /opt/netbox/requirements.txt
Una volta installato, migra il database con il seguente comando:
cd /opt/netbox/netbox/
python3 manage.py migrate
Una volta eseguita correttamente la migrazione, dovresti vedere il seguente output:
Applying secrets.0004_tags... OK Applying secrets.0005_change_logging... OK Applying secrets.0006_custom_tag_models... OK Applying ipam.0021_vrf_ordering... OK Applying ipam.0022_tags... OK Applying ipam.0023_change_logging... OK Applying ipam.0024_vrf_allow_null_rd... OK Applying ipam.0025_custom_tag_models... OK Applying dcim.0067_device_type_remove_qualifiers... OK Applying dcim.0068_rack_new_fields... OK Applying dcim.0069_deprecate_nullablecharfield... OK Applying dcim.0070_custom_tag_models... OK Applying extras.0020_tag_data... OK Applying extras.0021_add_color_comments_changelog_to_tag... OK Applying dcim.0071_device_components_add_description... OK Applying dcim.0072_powerfeeds... OK Applying dcim.0073_interface_form_factor_to_type... OK Applying extras.0022_custom_links... OK Applying extras.0023_fix_tag_sequences... OK Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK Applying ipam.0027_ipaddress_add_dns_name... OK Applying sessions.0001_initial... OK Applying taggit.0003_taggeditem_add_unique_index... OK Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK Applying users.0003_token_permissions... OK
Successivamente, dovrai creare un account amministratore per NetBox. Puoi farlo con il seguente comando:
python3 manage.py createsuperuser
Fornisci il nome utente e la password dell'amministratore e premi Invio, dovresti vedere il seguente output:
Username (leave blank to use 'root'): netboxadmin Email address: [email protected] Password: Password (again): Superuser created successfully.
Quindi sposta i file statici e carica i dati iniziali con il seguente comando:
python3 manage.py collectstatic
python3 manage.py loaddata initial_data
Installa e configura Gunicorn per NetBox
Successivamente, dovrai installare Gunicorn per NetBox. Puoi installarlo con il comando pip come mostrato di seguito:
pip3 install gunicorn
Quindi, crea un file di configurazione Gunicorn per NetBox con il seguente comando:
nano /opt/netbox/gunicorn_config.py
Aggiungi le seguenti righe:
command = '/usr/local/bin/gunicorn' pythonpath = '/opt/netbox/netbox' bind = 'your-server-ip:8001' workers = 3 user = 'www-data'
Salva e chiudi il file quando hai finito.
Configura Supervisor per Netbox
Successivamente, sarà necessario configurare Supervisor per gestire il servizio NetBox. Puoi farlo con il seguente comando:
nano /etc/supervisor/conf.d/netbox.conf
Aggiungi le seguenti righe:
[program:netbox] command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi directory = /opt/netbox/netbox/ user = www-data
Salvare e chiudere il file, quindi riavviare il servizio supervisore e consentirne l'avvio dopo il riavvio del sistema con il seguente comando:
systemctl restart supervisor
systemctl enable supervisor
Puoi anche verificare il servizio Supervisore con il seguente comando:
systemctl status supervisor
Uscita:
? supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago Docs: http://supervisord.org Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS) Main PID: 15015 (supervisord) Tasks: 5 (limit: 1098) CGroup: /system.slice/supervisor.service ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX. Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file) Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015 Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037 Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st
Configura Nginx per NetBox
Successivamente, dovrai configurare Nginx per accedere a NetBox utilizzando la porta 80. Per fare ciò, crea un file di configurazione dell'host virtuale con il seguente comando:
nano /etc/nginx/sites-available/netbox
Aggiungi le seguenti righe:
server { listen 80; server_name your-domain-name; client_max_body_size 25m; location /static/ { alias /opt/netbox/netbox/static/; } location / { proxy_pass http://your-server-ip:8001; } }
Salva e chiudi il file. Quindi, abilita l'host virtuale con il seguente comando:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Infine, riavvia il servizio Nginx per applicare tutte le modifiche alla configurazione con il seguente comando:
systemctl restart nginx
Accedi all'interfaccia Web di NetBox
NetBox è ora installato e configurato, è ora di accedere all'interfaccia web di NetBox.
Apri il tuo browser web e digita l'URL http://tuo-dominio.com. Verrai reindirizzato alla seguente pagina:
Ora, fai clic su Accedi pulsante nell'angolo in alto a destra. Dovresti vedere la seguente pagina:
Ora, fornisci il nome utente e la password dell'amministratore, quindi fai clic sul Registro In pulsante. Dovresti vedere la dashboard predefinita di NetBox nella pagina seguente:
Congratulazioni! hai installato e configurato con successo NetBox sul server Ubuntu 18.04. Ora puoi gestire e documentare la tua rete e l'indirizzo IP dalla posizione centrale. Sentiti libero di chiedermi se hai qualche domanda.