From 86e87e9e22404cd954b188fdafac799204b47a27 Mon Sep 17 00:00:00 2001 From: Bernd Kalbfuss Date: Thu, 21 Oct 2021 10:41:25 +0200 Subject: Added documentation for Portainer container management on cloud server. --- Infrastruktur/Cloud-Server.mdwn | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'Infrastruktur') diff --git a/Infrastruktur/Cloud-Server.mdwn b/Infrastruktur/Cloud-Server.mdwn index 589f1fff..8802f9f9 100644 --- a/Infrastruktur/Cloud-Server.mdwn +++ b/Infrastruktur/Cloud-Server.mdwn @@ -682,3 +682,73 @@ Die folgenden Anwendungen wurden zusätzlich installiert und aktiviert: * Circles * Announcements * Notes + +## Portainer + +Um die Verwaltung und Pflege der installierten Docker-Container zu erleichtern, wurde zusätzlich ein Portainer-Server in der Community Edition installiert. Die Portainer-Web-Oberfläche ist unter der Adresse https://portainer.lab.starship-factory.ch/ zu erreichen. Aus Sicherheitsgründen wurde der Zugriff auf das lokale Netzwerk beschränkt. + +### Docker + +Der Portainer-Server wurde ebenfalls als Docker-Container gemäß der offiziellen Installationsanleitung installiert. Zuerst wurde ein Volumen zur permanenten Datenspeicherung erstellt: + + sudo docker volume create portainer_data + +Im Anschluss wurde der Container selbst gestartet: + sudo docker run -d -p 9000:9000 --name portainer \ + --restart=always \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v portainer_data:/data \ + portainer/portainer-ce:latest + +Abweichend von der offiziellen Installationsanleitung wurde lediglich der unverschlüsselte *http*-Port 9000 weitergeleitet. Der Zugriff via *https* wird duch den Reverse Proxy ermöglicht. + +### Reverse Proxy + +Der Zugriff auf die Portainer-Web-Oberfläche wird wie bei der NextCloud durch den Nginx-Web-Server vermittelt, der als Reverse Proxy konfiguriert wude. Über diesen werden externe http-Anfragen an die Docker-Container weitergeleitet und gegebenenfalls verschlüsselt (*https*). Es werden die selben SSL-Zertifikate wie für den Cloud-Server verwendet. Aus Sicherheitsgründen wurde der Zugriff auf Portainer auf das lokale Netzwerk begrenzt. Die Konfiguration ist in der Datei */etc/nginx/sites-available/portainer* hinterlegt. Die Konfiguration wurde durch Verlinkung in das Verzeichnis */etc/nginx/sites-enabled* aktiviert. + +**/etc/nginx/sites-available/portainer** + + server { + listen 80; + server_name portainer.lab.starship-factory.ch; + + if ($host = portainer.lab.starship-factory.ch) { + return 301 https://$host$request_uri; + } # managed by Certbot + + return 404; # managed by Certbot + } + + server { + listen 443 ssl; + server_name portainer.lab.starship-factory.ch; + + # Apply letsencrypt nginx ssl configuration + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + + # If you use Lets Encrypt, you should just need to change the domain. + # Otherwise, change this to the path to full path to your domains public certificate file. + ssl_certificate /etc/letsencrypt/live/cloud.lab.starship-factory.ch/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/cloud.lab.starship-factory.ch/privkey.pem; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot + + # Log Location. the Nginx User must have R/W permissions. Usually by ownership. + access_log /var/log/nginx/access.log; + + # Forward to NextCloud server + location / { + 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; + proxy_pass http://cloud.lab.starship-factory.ch:9000/; + proxy_read_timeout 30; + } + +### Authenifizierung via LDAP + +Um die Authentifizierung mitels LDAP zu ermöglichen, wurde ein dedizierter System-Benutzer *portainer-ldap-user* erstellt. Der System-Benutzer wurde in die Gruppe *ldap-auth-users* aufgenommen, um ihm Suchrechte auf das LDAP-Verzeichnis zu gewähren. Die LDAP-Authentifierzung in Portainer wurde entsprechend dem folgenden Bildschirmfoto in Portainer eingerichtet. + + + +***Hinweis:*** Neue Benutzer erscheinen erst nach dem ersten erfolgreichen Login in der Portainer-Nutzerverwaltung. Sie haben zu Beginn noch keine Rechte. Diese müssen ihnen im Anschluss explizit durch einen Administrator hinzugefügt werden. \ No newline at end of file -- cgit v1.2.1