====== installatie======
[[netbox:netbox|{{ :netbox:icon.jpg?120|}}]]
===== context=====
dit document beschrijft de installatie van Netbox
===== vereisten=====
* PostgreSQL database
* Redis
* NetBox components
* Gunicorn or uWSGI
* HTTP server
* LDAP authentication (optioneel)
===== algemene opbouw =====
{{ :netbox:ls002402.png?400 |}}
===== PostgreSQL database=====
* installeer [[linux:postgresql|PostgreSQL]]
* meld aan als gebruiker ''postgres'': sudo -u postgres psql
* maak de database aan: CREATE DATABASE netbox;\\ controleer: ''\l''
* maak de netbox gebruiker aan: CREATE USER netbox WITH PASSWORD 'q2;kjp8bnz ng;iu'; \\ controleer: ''\du''
* maak de gebruiker netbox eigenaar van de database: ALTER DATABASE netbox OWNER TO netbox;\\ controleer: ''\l''
* verbind op db netbox als gebruiker netbox:\connect netbox;
* ken rechten toe: GRANT CREATE ON SCHEMA public TO netbox;
* controleer aanmlden als volgt: psql --username netbox --password --host localhost netbox
===== Redis=====
zie: [[linux:Redis|:Redis]]
===== NetBox components=====
*installeer systeempackages:
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
* controleer je Python (min: 3) versie: python3 -V
* clone Netbox: sudo mkdir -p /opt/netbox/
cd /opt/netbox/
git clone https://github.com/netbox-community/netbox.git .
* maak de metbox **gebruiker** aan en geef toegang: adduser --system --group netbox
chown --recursive netbox /opt/netbox/netbox/media/ (**deze bestaat niet in cloned repo!!!)
chown --recursive netbox /opt/netbox/netbox/reports/
chown --recursive netbox /opt/netbox/netbox/scripts/
* naak een **secret key** (crypto, hashing) aan: python3 /opt/netbox/netbox/generate_secret_key.py
* maak de config file aan: cd /opt/netbox/netbox/netbox/
cp configuration_example.py configuration.py
* open configuration.py en vul onderstaande waarden in:
* ALLOWED_HOSTS = ['fqdn.netbox']\\ vb: netbox.legoland.net\\ of: ''ALLOWED_HOSTS = ['*']'' en regel de toegang via Firewall.
* postgresql info: user en wachtwoord
* redis info: default is ok
* SECRET_KEY =
* **bewaar** je wijzigingen en sluit af.
* voer het installatie (upgrade) script uit: /opt/netbox/upgrade.sh
* dit doet volgende:
* maakt een Python virtual environment
* installeert alle nodige Python packages
* voert database schema migrations uit
* maakt de documentatie aan {{ :netbox:ls002406.png?400 |}}
* activeer de Python virtual environement: source /opt/netbox/venv/bin/activate
* maak een **superuser** gebruiker aan: cd /opt/netbox/netbox
python3 manage.py createsuperuser
* test de server: python3 manage.py runserver 0.0.0.0:8000 --insecure{{ :netbox:ls002417.png?400 |}}
===== Gunicorn=====
= Webserver Gateway Interface: fucntie waarbij web servers requests forward naar achterliggende web applicaties of frameworks geschreven in Python.
cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
===== Systemd =====
* cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
systemctl daemon-reload
* start netbox en netbox-rq systemctl enable --now netbox netbox-rq
* controleer de status: systemctl status netbox.service
===== HTTP server=====
* maak een SSL certificaat aan: openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
* install Apache: sudo apt install -y apache2
* kopieer de config: cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf\\ pas de severnaam aan, cfr ALLOWED_HOSTS
* activeer de nodige Apache modules,de netbox site en herstart Apache: a2enmod ssl proxy proxy_http headers rewrite
a2ensite netbox
systemctl restart apache2
* test door naar https:///netbox te gaan
===== LDAP authentication=====
===== meer info =====
* [[https://netboxlabs.com/docs/netbox/installation/|Netbox KB]]
* [[https://www.howtoforge.com/how-to-install-netbox-irm-on-debian-12/#:~:text=In%20this%20guide%2C%20we%27ll%20show%20you%20how%20to,also%20secure%20your%20NetBox%20installation%20with%20SSl%2FTLS%20certificates.|Netbox on Debian12]]
{{tag>netbox}}