====== 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}}