Ricerca nel sito web

Come installare NetBox IRM su Debian 11


Su questa pagina

  1. Prerequisiti
  2. Installazione del server PostgreSQL
  3. Installazione del server Redis
  4. Installazione di NetBox IRM
  5. Creazione dell'utente amministratore di NetBox
  6. Impostazione di NetBox come servizio Systemd
  7. Impostazione di Apache2 come proxy inverso
  8. Conclusione

NetBox è un software IRM (Infrastructure Resource Modeling) progettato per l'automazione di rete e l'ingegneria delle infrastrutture. Inizialmente, è stato creato dal team di DigitalOcean e ora è diventato un progetto open source rilasciato sotto la licenza Apache 2. NetBox è stato creato nel framework Web Python Django con PostgreSQL come database predefinito e l'installazione di NetBox è abbastanza simile ad altre applicazioni Web Python Django.

NetBox ti aiuta a gestire la tua infrastruttura, che comprende:

  • DCIM (gestione dell'infrastruttura del data center)
  • IPAM (gestione degli indirizzi IP)
  • Circuiti dati
  • Connessioni (rete, console e alimentazione)
  • Rastrelliere per attrezzature
  • Virtualizzazione
  • Segreti

Questo articolo ti guiderà attraverso i passaggi su come installare NetBox Infrastructure Resource Modeling su un server Debian 11. Questo articolo include l'installazione di base del database PostgreSQL, del server Redis e la configurazione di base di Apache2 come proxy inverso. Alla fine, avrai il NetBox attivo e funzionante sulla tua Debian 11 con HTTPS/SSL abilitato sopra di esso.

Prerequisiti

Per completare questo tutorial, avrai bisogno dei seguenti requisiti:

  • Un'istanza del server Debian 11.
  • Un utente non root con privilegi di root/amministratore.
  • Un nome di dominio puntava al tuo server Debian.

Installazione del server PostgreSQL

L'applicazione NetBox supporta solo PostgreSQL come database predefinito. Quindi, installerai PostgreSQL sul tuo server Debian. Quindi, crea un nuovo database e un nuovo utente per l'installazione di NetBox.

La versione corrente di NetBox richiedeva almeno PostgreSQL v10 o successivo. Su Debian 11, il repository fornisce il server PostgreSQL predefinito v13.

Per iniziare, eseguire il comando apt di seguito per aggiornare il repository Debian e aggiornare l'indice dei pacchetti.

sudo apt update

Ora installa il server PostgreSQL usando il seguente comando apt. Immettere Y per confermare e premere INVIO e l'installazione di PostgreSQL inizierà.

sudo apt install postgresql postgresql-common

Ora che hai finito con l'installazione di PostgreSQL, esegui il seguente comando systemctl per controllare e verificare il servizio PostgreSQL. Dovresti vedere che PostgreSQL è abilitato e verrà eseguito automaticamente all'avvio del sistema. E lo stato corrente del servizio PostgreSQL è in esecuzione.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Successivamente, creerai un nuovo database PostgreSQL e un utente per Nextbox. Per fare ciò, devi accedere alla console PostgreSQL.

Eseguire il seguente comando per accedere alla console PostgreSQL utilizzando il ruolo \postgres\.

sudo -u postgres psql

Ora esegui le seguenti query sulla console PostgreSQL per creare un nuovo database e un nuovo utente. in questo esempio creeremo un nuovo database chiamato \netboxdb\ e l'utente PostgreSQL \netbox\ con la password \NetBoxRocks\.

CREATE DATABASE netboxdb;
CREATE USER netbox WITH ENCRYPTED PASSWORD 'NetBoxRocks';
GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netbox;

Ora premi \Ctrl+d\ per uscire dalla console PostgreSQL o digita \\q\ per uscire.

Per verificare il database e l'utente, eseguire il comando seguente. Questo si collegherà alla shell PostgreSQL usando l'utente \netbox\ al database \netboxdb\ sul tuo server PostgreSQL.

Quando viene richiesta la password del database, inserire la password NetBoxRocks\.

sudo -u postgres psql --username netbox --password --host localhost netboxdb

Dopo aver effettuato l'accesso alla console PostgreSQL e al database \netboxdb\, eseguire la seguente query per verificare la connessione corrente. E dovresti vedere che sei connesso al database PostgreSQL \netboxdb\ con l'utente \netbox\.

\conninfo

Premi \Ctrl+d\ per uscire dalla console PostgreSQL o digita \\q\ per uscire.

Installazione del server Redis

Redis è un database di valori-chiave in memoria che verrà utilizzato da NetBox per la memorizzazione nella cache e l'accodamento. Quindi, ora installerai il server Redis sul tuo server Debian.

Al momento della stesura di questo documento, l'ultima versione di NetBox richiedeva Redis v4.0 o versioni successive. l'ultimo repository Debian 11 fornisce Redis v5.6.

Per avviare l'installazione di Redis, eseguire il comando apt di seguito. inserire Y per confermare l'installazione e premere INVIO, e l'installazione di Redis avrà inizio.

sudo apt install redis-server

Al termine dell'installazione, eseguire i seguenti comandi systemctl per controllare e verificare il servizio Redis. Dovresti vedere che il servizio Redis è abilitato e verrà eseguito automaticamente all'avvio del sistema. E lo stato attuale del servizio Redis è in esecuzione.

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

L'installazione predefinita di Redis viene fornita senza autenticazione. Per l'ambiente di produzione, si consiglia di utilizzare l'autenticazione sul server Redis. Per abilitare l'autenticazione Redis, dovrai modificare il file di configurazione \/etc/redis/redis.conf\

Esegui il seguente comando per modificare il file di configurazione di Redis \/etc/redis/redis.conf\.

sudo nano /etc/redis/redis.conf

Decommenta l'opzione \requirepass\ e inserisci la password di autenticazione per Redis. in questo esempio, useremo la password \RedisPasswordNetBox\.

requirepass RedisPasswordNetBox

Quando hai finito, salva e chiudi il file.

Ora esegui il seguente comando per riavviare il servizio Redis e applicare le nuove modifiche.

sudo systemctl restart redis-server

Per verificare l'autenticazione Redi, eseguire il comando \redis-cli\ di seguito per connettersi alla console Redis.

redis-cli

Ora esegui il seguente comando per verificare la tua autenticazione Redis. Se la tua password è corretta, vedrai un messaggio di output come \OK\.

AUTH RedisPasswordNetBox

Ora premi \Ctrl+d\ per uscire dalla console Redis.

Installazione di NetBox IRM

NetBox è un'applicazione web open source scritta con il framework Python Django. Quindi l'installazione di NetBox è abbastanza simile a Python Django Web-Framework. L'ultima versione di Netbox richiedeva almeno Python v3.8 o superiore.

Prima di iniziare l'installazione di NetBox, eseguire il seguente comando per creare un nuovo utente di sistema \netbox\ che verrà utilizzato per eseguire l'applicazione Web NetBox.

sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox

Installa Python3 e alcune dipendenze del pacchetto usando il comando apt di seguito.

sudo apt install -y git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

Al termine dell'installazione, eseguire il seguente comando per creare una nuova directory di installazione di NetBox \/opt/netbox\ e clonare il codice sorgente di NetBox utilizzando il comando Git.

mkdir -p /opt/netbox; cd /opt/netbox
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .

Ora cambia la proprietà della directory di installazione di NetBox all'utente corretto \netbox\ usando il seguente comando.

sudo chown -R netbox:netbox /opt/netbox

Successivamente, sposta la directory di lavoro in \/opt/netbox/netbox/netbox\ e copia la configurazione di esempio di NetBox \configuration_example.py\ in \configurazione.py\.

cd /opt/netbox/netbox/netbox
sudo -u netbox cp configuration_example.py configuration.py

Prima di modificare il file di configurazione di netBox, eseguire il seguente comando per generare \SECRET_KEY\ per NetBox. Copia la \SECRET_KEY\ generata nel tuo editor, questa verrà utilizzata in seguito durante la modifica del file \configuration.py\.

sudo -u netbox python3 ../generate_secret_key.py

Esegui il seguente comando per iniziare a modificare il file \configuration.py\.

sudo -u netbox nano configuration.py

Ora dovrai configurare l'installazione di NetBox come di seguito:

  • Nella configurazione \ALLOWED_HOSTS\, inserisci il nome di dominio per l'installazione di NetBox e l'indirizzo IP del server. In questo esempio, NetBox verrà installato con il nome di dominio \netbox.hwdomain.io\ e l'indirizzo IP del server \192.168.5.20\.
  • Inserisci i dettagli del database PostgreSQL per il tuo NetBox nell'impostazione \DATABASE\.
  • Inserisci la password Redis nella configurazione \REDIS\. Assicurati di cambiare la password in entrambe le sezioni \attività\ e \memorizzazione nella cache\.
  • Infine, incolla la \SECRET_KEY\ generata nel file.

# domain and IP address
ALLOWED_HOSTS = ['netbox.hwdomain.io', '192.168.5.20']

# database configuration
DATABASE = {
    'NAME': 'netboxdb',               # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'NetBoxRocks', # PostgreSQL password
    'HOST': 'localhost',            # Database server
    'PORT': '',                     # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,            # Max database connection age (seconds)
}

# Redis cache configuration
REDIS = {
    'tasks': {
        'HOST': 'localhost',      # Redis server
        'PORT': 6379,             # Redis port
        'PASSWORD': 'RedisPasswordNetBox',           # Redis password (optional)
        'DATABASE': 0,            # Database ID
        'SSL': False,             # Use SSL (optional)
    },
    'caching': {
        'HOST': 'localhost',
        'PORT': 6379,
        'PASSWORD': 'RedisPasswordNetBox',
        'DATABASE': 1,            # Unique ID for second database
        'SSL': False,
    }
}

# Secret key
SECRET_KEY = '!22_UYNLcWw+_5=$$=8mtL#JImfOlD*-KiuI6h'

Quando hai finito, salva e chiudi il file.

Ora per avviare l'installazione di NetBox, puoi eseguire lo script \upgrade.sh\ come di seguito.

sudo -u netbox /opt/netbox/upgrade.sh

Questo script installerà e configurerà automaticamente l'installazione di NetBox. La versione dettagliata è di seguito:

  • Questo creerà un nuovo ambiente virtuale Python per l'installazione di NetBox.
  • Questo installerà anche alcune dipendenze e librerie Python per NetBox.
  • Esecuzione della migrazione del database per NetBox.
  • Generazione risorsa file statici per NetBox.

Di seguito è riportato l'output quando inizia l'installazione.

Al termine dell'installazione, verrà visualizzato il seguente output.

Creazione dell'utente amministratore di NetBox

Hai terminato l'installazione di base di NetBox. Ora creerai un nuovo utente amministratore per NetBox. E questo è anche un modo simile quando devi creare un utente amministratore Django.

Eseguire il comando seguente per attivare l'ambiente virtuale Python.

source /opt/netbox/venv/bin/activate

Sposta la directory di lavoro in \/opt/netbox/netbox\. Quindi, esegui lo script \manage.py\ per creare un nuovo utente amministratore per NetBox.

cd /opt/netbox/netbox
python3 manage.py createsuperuser

Inserisci il nome utente, l'e-mail e la password per NextBox.

Al termine della configurazione dell'amministratore, eseguire il seguente comando per impostare lo script cron necessario per NetBox. questo verrà eseguito automaticamente su base giornaliera.

sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

Infine, esegui il seguente comando per testare e verificare l'installazione di NetBox. se l'installazione è corretta, vedrai che il netBox è ora in esecuzione sulla porta \8000\.

python3 manage.py runserver 0.0.0.0:8000 --insecure

Ora premi \Ctrl+c\ sul terminale per il processo. Quindi, esegui il comando \deactivate\ per uscire dall'ambiente virtuale Python.

Configurazione di NetBox come servizio Systemd

Dopo aver terminato la configurazione dell'amministratore per NetBox. Ora configurerai il NetBox come servizio systemd. Il servizio NetBox verrà eseguito con il proxy inverso Gunicorn e HTTP.

Tutta la configurazione necessaria NetBox Gunicorn e lo script di servizio systemd sono disponibili per impostazione predefinita nella directory \/opt/netbox/contrib\.

Esegui il seguente comando per copiare la configurazione di Gunicorn in \/opt/netbox/gunicorn.py\. Quindi, modifica il file utilizzando l'editor nano.

sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.py

Nella configurazione predefinita, l'applicazione NetBox verrà eseguita su localhost con porta \8001\. Puoi lasciare la configurazione come predefinita o apportare modifiche in base al tuo ambiente.

bind = '127.0.0.1:8001'

Salva e chiudi il file di configurazione quando hai finito.

Successivamente, copia i file del servizio systemd nella directory \/etc/systemd/system\ utilizzando quanto segue. Ciò abiliterà due servizi, il servizio \netbox\ come servizio principale per la tua applicazione NetBox e il servizio \netbox-rq\ per il servizio di accodamento delle richieste NetBox.

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/

Ora ricarica il gestore di sistema per applicare i nuovi file di servizio NetBox.

sudo systemctl daemon-reload

Dopo aver ricaricato il gestore systemd, puoi eseguire i servizi \netbox\ e \netbox-rq\ utilizzando il comando systemctl come di seguito. entrambi i servizi verranno eseguiti automaticamente all'avvio del sistema.

sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

Infine, controlla e verifica i servizi NetBox utilizzando il seguente comando.

sudo systemctl status netbox
sudo systemctl status netbox-rq

Nel seguente output, puoi vedere che il servizio \netbox\ è abilitato. E lo stato attuale è in esecuzione.

Per il servizio netbox-rq\, otterrai anche l'output del servizio abilitato. Ed è in esecuzione.

Configurazione di Apache2 come proxy inverso

Eseguire il comando apt di seguito per installare il server Web Apache2. Immettere Y per confermare l'installazione e premere INVIO e l'installazione avrà inizio.

sudo apt install apache2

Al termine dell'installazione di Apache2, eseguire il seguente comando per abilitare alcuni moduli Aapche2 che verranno utilizzati per il proxy inverso. Dovresti vedere che anche alcuni moduli aggiuntivi sono abilitati.

sudo a2enmod ssl proxy proxy_http headers

Successivamente, copia l'esempio di configurazione dell'host virtuale Apache2 per NetBox in \/etc/apache2/sites-available/netbox.conf\. Quindi, modifica il file \/etc/apache2/sites-available/netbox.conf\ utilizzando nano editor

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.conf

Modifica il nome di dominio per l'installazione di NetBox e il percorso dei certificati SSL. In questo esempio, utilizzeremo il dominio \netbox.hwdomain.io\ con i certificati SSL di Letsencrypt disponibili nella directory \/etc/letsencrypt/live/netbox .hwdomain.io/\.

<VirtualHost *:443>
    ProxyPreserveHost On

    # CHANGE THIS TO YOUR SERVER'S NAME
    ServerName netbox.hwdomain.io

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/netbox.hwdomain.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/netbox.hwdomain.io/privkey.pem

    Alias /static /opt/netbox/netbox/static

    <Directory /opt/netbox/netbox/static>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>

    <Location /static>
        ProxyPass !
    </Location>

    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    ProxyPass / http://127.0.0.1:8001/
    ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>

Quando hai finito, salva e chiudi il file.

Ora esegui il seguente comando per attivare la configurazione dell'host virtuale \netbox.conf\. Quindi, testare e verificare la configurazione di Apache. Dovresti ottenere un messaggio di output come \Syntax OK\, il che significa che la configurazione di Apache2 è corretta.

sudo a2ensite netbox.conf
sudo apachectl configtest

Ora riavvia il servizio Apache2 per applicare le nuove modifiche al file dell'host virtuale. Il server Web Apache2 è ora in esecuzione con HTTPS/SSL abilitato al contrario dell'applicazione Web NetBox in esecuzione su \localhost:8001\.

sudo systemctl restart apache2

Per verificare l'installazione, apri il browser Web e visita il nome di dominio dell'installazione di NetBox (ad esempio: https://netbox.hwdomain.io/). E dovresti ottenere l'amministrazione del dashboard per NetBox con uno stato bloccato.

Fare clic sul pulsante \Accedi\ in alto a destra.

Ora inserisci l'utente amministratore e la password per l'installazione del tuo netBox e fai clic su \Accedi\.

Dovresti ottenere l'amministrazione del dashboard di NetBox.

Conclusione

Attraverso questo tutorial, hai configurato NetBox Infrastructure Resource Modeling (IRM) con il database PostgreSQL, il sistema di memorizzazione nella cache Redis, Gunicorn e il proxy inverso Apache2 su un server Debian 11. Hai anche configurato NetBox come servizio systemd che semplifica l'avvio e l'arresto dell'applicazione Web NetBox. Alla fine, hai completamente configurato NetBox IRM in esecuzione sul tuo server Debian con HTTPS/SSL sicuro abilitato su di esso.