Cum se instalează NetBox IRM pe serverul Ubuntu 24.04

Configurare noua (How To)

Situatie

NetBox este un instrument de modelare a resurselor de infrastructură (IRM) conceput pentru automatizarea rețelelor și ingineria infrastructurii. Inițial, a fost creat de echipa DigitalOcean și acum a devenit un proiect open-source lansat sub licența Apache 2.

Înainte de a continua, asigură-te că ai următoarele:

  • Un server Ubuntu 24.04
  • Un utilizator non-root cu privilegii de administrator
  • Un nume de domeniu a indicat adresa IP a serverului

Pentru a instala Netbox, trebuie să vă asigurați că dependențele sunt instalate pe serverul Ubuntu. Acestea includ Python3, serverul PostgreSQL, serverul web Apache, Redis și bibliotecile de sistem. În această secțiune, veți instala aceste pachete cu ajutorul managerului de pachete APT.

Mai întâi, executați următoarea comandă pentru a actualiza indexul pachetului Ubuntu.

sudo apt update

După actualizare, instalați dependențele pentru Netbox cu următoarea comandă. În acest exemplu, veți instala PostgreSQL, Apache, Python, Redis, Certbot, veți construi dependențe și câteva biblioteci.

sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git certbot python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev

Introduceți „ Y ” pentru a confirma instalarea.

După finalizarea instalării, executați comanda „systemctl” de mai jos pentru a verifica starea serverului web Apache.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

În următoarea ieșire, puteți vedea că Apache rulează și este activat.

În cele din urmă, verificați starea serverului PostgreSQL cu următoarele:

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

În rezultatul de mai jos, puteți vedea că PostgreSQL este activat și rulează cu starea „exited” (sistem-ul nu poate găsi serviciul de monitorizat).

Configurarea PostgreSQL

După instalarea dependențelor, trebuie să configurați serverul PostgreSQL creând un nou utilizator și o nouă bază de date pe care Netbox le va utiliza.

Conectați-vă la serverul PostgreSQL folosind comanda de mai jos.

sudo -u postgres psql

Acum executați următoarele interogări pentru a crea un nou utilizator „ netbox ” cu parola „ netboxpassword ” și noua bază de date „ netboxdb ”.

CREATE USER netbox LOGIN CREATEDB PASSWORD 'netboxpassword';
CREATE DATABASE netboxdb OWNER netbox;

După ce baza de date și utilizatorul sunt create, verificați lista de baze de date și utilizatori pe PostgreSQL cu următoarele.

\l 
\du

Puteți vedea mai jos baza de date „ netboxdb ” și utilizatorul „ netbox ” care este creat.

Tastați „ quit ” pentru a ieși din serverul PostgreSQL.

Acum că baza de date PostgreSQL este gata, veți descărca și instala Netbox pe mașina dvs. Ubuntu. Veți configura numele de domeniu, cheia secretă și baza de date pentru Netbox.

Mai întâi, executați comanda de mai jos pentru a crea un nou utilizator „netbox” pe mașina dvs. Ubuntu.

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

Acum executați comanda de mai jos pentru a descărca codul sursă Netbox cu comanda „ git ” și schimbați proprietarul la utilizatorul „ netbox ”.

sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git /opt/netbox
sudo chown -R netbox:netbox /opt/netbox

Mutați-vă în directorul „ /opt/netbox/netbox/netbox ” și executați fișierul „ generate_secret_key.py ”. Copiați cheia secretă în nota dvs.

cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.py

Apoi, copiați fișierul „ configuration.py ” și modificați-l folosind editorul „ nano ”.

sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.py

Adăugați adresa IP locală și numele de domeniu la „ ALLOWED_HOSTS ”.

ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.60']

Introduceți numele bazei de date PostgreSQL, utilizatorul și parola în secțiunea „ BAZA DE DATE ”.

# configurare bază de date 
DATABASE = { 
'NAME': 'netboxdb', # Nume bază de date 
'USER': 'netbox', # Nume utilizator PostgreSQL 
'PASSWORD': 'netboxpassword', # Parolă PostgreSQL 
'HOST': 'localhost', # Server bază de date 
'PORT': '', # Port bază de date (se lasă necompletat pentru implicit) 
'CONN_MAX_AGE': 300, # Vârsta maximă a conexiunii la baza de date (secunde) 
}

Lipiți cheia secretă în secțiunea „ SECRET_KEY ”.

SECRET_KEY = '98%D9uh8S%)T0QhQ@Z3zYf%Hik^CqWJ)Uwz%0J7TZUztmNiitG'

Salvați fișierul și ieșiți din editor când ați terminat.

Migrarea Netbox și configurarea administratorului

Acum că ați configurat Netbox cu serverul PostgreSQL, sunteți gata să migrați baza de date și să creați un utilizator de administrator pentru instalarea Netbox.

Executați scriptul „ upgrade.sh ” folosind comanda de mai jos. Aceasta va crea un mediu Python, va instala dependențele pentru Netbox, va migra baza de date Netbox, se va conecta la Redis și apoi va genera fișiere statice.

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

Mai jos puteți vedea migrarea bazei de date pentru Netbox.

Și mai jos, când „ manage.py ” generează fișiere statice.

După finalizarea procesului, trebuie să creați un nou utilizator de administrator pentru Netbox prin intermediul scriptului „ manage.py ”.

Rulați următoarea comandă pentru a activa mediul virtual Netbox. Odată activat, shell-ul dvs. va deveni de genul „ (venv) user@hostname ”.

source /opt/netbox/venv/bin/activate

Accesați directorul „ /opt/netbox/netbox ” și executați scriptul „ manage.py ” astfel:

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

Introduceți numele de utilizator, adresa de e-mail și parola pentru administratorul Netbox.

După finalizare, executați comanda „ dezactivate ” pentru a ieși din mediul virtual Netbox.

Rularea Netbox ca serviciu

În această secțiune, veți copia configurațiile Netbox care vor fi utilizate pentru a rula Netbox ca serviciu systemd. Trebuie să vă asigurați că Netbox rulează sub Gunicorn, apoi să copiați fișierele serviciului Netbox în directorul „ /etc/systemd/system ”.

Mai întâi, copiați scriptul „ gunicorn.py ” în directorul „ /opt/netbox ”. Acest script conține configurația pentru ca Netbox să ruleze sub serverul WSGI Python.

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

Acum executați comanda de mai jos pentru a copia fișierele de service pentru Netbox în directorul „ /etc/systemd/system ” și a reîncărca managerul systemd.

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

După ce systemd este reîncărcat, executați comanda „ systemctl ” de mai jos pentru a porni și activa serviciile Netbox.

sudo systemctl enable --now netbox netbox-rq netbox-housekeeping

În cele din urmă, verificați serviciile Netbox pentru a vă asigura că rulează cu următoarea comandă.

sudo systemctl status netbox netbox-rq netbox-housekeeping

În următoarea ieșire, puteți vedea că serviciul „ netbox ” rulează și este activat.

Pentru serviciul „ netbox-rq ”, ar trebui să obțineți o ieșire de genul:

În cele din urmă, „ netbox-housekeeping ” cu starea „ dead ” deoarece va funcționa ca un cronometru.

Configurarea Apache ca proxy invers

În acest moment, Netbox rulează în fundal ca serviciu pe serverul Python WSGI. Pentru a-l face accesibil din exterior, trebuie să configurați Apache ca proxy invers. Înainte de asta, trebuie să generați și certificate SSL pentru a securiza instalarea Netbox.

Mai întâi, executați comanda de mai jos pentru a opri serviciul „ apache2 ”.

sudo systemctl stop apache2

Acum generați certificate SSL din Letsencrypt cu comanda „ certbot ” de mai jos. Asigurați-vă că schimbați numele de domeniu și adresa de e-mail cu informațiile dvs.

sudo certbot certonly --standalone --preferred-challenges http -d netbox.howtoforge.local

După finalizarea procesului, certificatele SSL vor fi disponibile în directorul „ /etc/letsencrypt/live/domain.com ”.

Apoi, copiați configurația Apache pentru Netbox în fișierul „ /etc/apache2/sites-available/netbox.conf ” și modificați-o folosind editorul „ nano ”.

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

Înlocuiți numele domeniului în opțiunea „ ServerName ” și modificați calea certificatelor SSL.

<VirtualHost *:80> 
# SCHIMBAȚI ACESTA ÎN NUMELE SERVERULUI 
DUMNEAVOASTRĂ ServerName netbox.howtoforge.local 

... 
</VirtualHost> 

<VirtualHost *:443> 
ProxyPreserveHost On # SCHIMBAȚI ACESTA 

ÎN NUMELE SERVERULUI DUMNEAVOASTRĂ 
ServerName netbox.howtoforge.local 

SSLEngine on 
SSLCertificateFile /etc/letsencrypt/live/netbox.howtoforge.local/fullchain.pem 
SSLCertificateKeyFile /etc/letsencrypt/live/netbox.howtoforge.local/privkey.pem 
... 
</VirtualHost>

Salvați fișierul și ieșiți din editor când ați terminat.

Acum executați comanda de mai jos pentru a activa modulele Apache și fișierul gazdă virtuală „ netbox.conf ”.

sudo a2enmod ssl proxy proxy_http headers rewrite
sudo a2ensite netbox.conf

După ce gazda virtuală este activată, executați următoarea comandă pentru a reporni Apache și a aplica modificările. Astfel, instalarea Netbox ar trebui să ruleze sub proxy-ul invers Apache cu HTTPS activat.

sudo systemctl restart apache2

În cele din urmă, accesați https://netbox.howtoforge.local/ cu browserul web și veți fi redirecționat către pagina de conectare Netbox. Introduceți numele de utilizator și parola de administrator, apoi faceți clic pe Conectare.

Veți vedea următorul tablou de bord Netbox dacă aveți acreditările de administrator corespunzătoare.

Faceți clic pe meniul Admin > System pentru a vedea informații despre instalarea Netbox. În rezultatul următor, puteți vedea că Netbox v4.1.7 este instalat împreună cu baza de date PostgreSQL.

Solutie

Tip solutie

Permanent

Voteaza

(1 din 2 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?