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.
Leave A Comment?