Installation mit Docker
Beschreibung:
Für einige Dienste ist die Wartung mittelös Docker wesentlich einfacher. Neues images pullen, fertig.
Docker container reinstallieren.
Durch eine composer Datei nichts leichter als das.
Los gehts
Docker installieren:
siehe Buch hier klicken.
Datenverzeichnis erstellen
WIr legen unsere daten in /root/netboxdata ab. Und die configs für nginx im Unterverzeichnis nginx.
mkdir -p /root/netboxdata/nginx/
mkdir -p /root/netboxdata/netbox/media
mkdir -p /root/netboxdata/compose
Selbstsignierte SSL-Zertifikate erstellen
Wir ertsellen das Zertifikat mit 100 Jahren
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /root/netboxdata/nginx/selfsigned.key -out /root/netboxdata/nginx/selfsigned.crt
Nun die Fragen beantworten.
DE alles andere leer lassen außer
Common Name (e.g. server FQDN or YOUR name) []:netbox.local.lan
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:netbox.local.lan
Docker-Compose-File erstellen
Die Compose Datei:
nano /root/netboxdata/compose/docker-compose.yml
Nun den Inhalt einfügen und ersetze mysecretkey, mydbpassword und mydbrootpassword mit sicheren, zufälligen Werten.
Der Secret KEY muss mindesten 50 Zeichen haben.
version: '3.1'
services:
netbox:
image: netboxcommunity/netbox
depends_on:
- mariadb
- redis
volumes:
- /root/netboxdata/netbox/media:/opt/netbox/netbox/media
environment:
- NETBOX_SECRET_KEY=mysecretkey
- NETBOX_ALLOWED_HOSTS=*
- DB_NAME=netbox
- DB_USER=netbox
- DB_PASSWORD=mydbpassword
- DB_HOST=mariadb
- DB_DRIVER=mysql
- REDIS_HOST=redis
mariadb:
image: mariadb:10.5
environment:
- MYSQL_ROOT_PASSWORD=mydbrootpassword
- MYSQL_DATABASE=netbox
- MYSQL_USER=netbox
- MYSQL_PASSWORD=mydbpassword
volumes:
- /root/netboxdata/mariadb:/var/lib/mysql
redis:
image: redis:6
nginx:
image: nginx:1.21
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- /root/netboxdata/nginx:/etc/ssl/nginx:ro
ports:
- "80:80"
- "443:443"
depends_on:
- netbox
networks:
default:
driver: bridge
NGINX Configuration erstellen
nano /root/netboxdata/compose/nginx.conf
Inhalt
worker_processes 1;
events {
worker_connections 1024;
}
http {
log_format main '$proxy_protocol_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/ssl/nginx/selfsigned.crt;
ssl_certificate_key /etc/ssl/nginx/selfsigned.key;
location / {
proxy_pass http://netbox:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
Docker-Compose-Setup
cd /root/netboxdata/compose/
docker-compose up -d
Datenbank initialiseren nach start des Containers
docker-compose run --rm netbox python3 manage.py migrate