Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
allgemein:guacamole_installation_test [2023/07/07 12:13 CEST] sritterallgemein:guacamole_installation_test [2023/07/07 13:06 CEST] sritter
Zeile 1: Zeile 1:
 <!DOCTYPE markdown> <!DOCTYPE markdown>
-<WRAP 800px>+<WRAP 900px>
  
 # Apache Guacamole # Apache Guacamole
  
-Guacamole ist eine Art VNC-Proxy, den Sie entweder lokal kompilieren und installieren müssen oder mittels Docker in Containern betreiben können. Mit einem zusätzlichen bwLehrpool-Plugin können Sie dann über eine einfache Weboberfläche Ihre bwLehrpool-Clients per Webbrowser zugänglich machen (siehe auch [[allgemein:remotenutzung_von_bwlehrpool|Remotezugriff auf bwLehrpool-Clients]].+Um mittels [[allgemein:remotenutzung_von_bwlehrpool|Remotezugriff auf bwLehrpool-Clients]] zugreifen zu können, benötigen Sie einen \[\[https://guacamole.apache.org/|Apache Guacamole-Server\]\].
  
-Da die Inbetriebnahme mit Docker deutlich einfacher und schneller als eine Lokalinstallation ist, beschränken wir uns hier auf die Containerlösung.+Guacamole ist eine Art VNC-Proxy, den Sie entweder lokal kompilieren und installieren oder mittels Docker in Containern betreiben können. Mit einem zusätzlichen bwLehrpool-Plugin können Sie dann über eine einfache Weboberfläche Ihre bwLehrpool-Clients per Webbrowser zugänglich machen. 
 + 
 +Da Inbetriebnahme und Updates von Guacamole mit Docker deutlich einfacher und schneller als eine lokale Installation ist, beschränken wir uns hier auf die Containerlösung.
  
 # Container Setup # Container Setup
  
-Sie finden ein vorgefertigtes Docker-Compose File nebst README und Beispielen zur Konfiguration in unserem Git-Repository im Unterordner 'docker'Achten Sie darauf, dass unter Linux Dateien die mit einem '.' (Punkt) beginnen evtl. nicht sichtbar sind. Nutzen Sie daher ggf. das Kommando 'ls -la' um auch versteckte Dateien anzuzeigen.+Sie finden ein vorgefertigtes Docker-Compose File nebst README und Beispielen zur Konfiguration in unserem Git-Repository (*./deployment/docker*). Die Konfiguration wird über die Datei '.envgesteuert. 
 + 
 +*Beachten Sie, dass unter Linux Dateien die mit einem '.' (Punkt) beginnen evtl. nicht sichtbar sind. Nutzen Sie daher ggf. das Kommando 'ls -la'um auch versteckte Dateien anzuzeigen.*
  
 Klonen Sie das Repository und kopieren als ersten Schritt die Konfigurationsdatei '.env.example' nach '.env'. Klonen Sie das Repository und kopieren als ersten Schritt die Konfigurationsdatei '.env.example' nach '.env'.
Zeile 16: Zeile 20:
 ``` ```
 git clone https://git.openslx.org/bwlp/bwlp-guacamole-ext.git git clone https://git.openslx.org/bwlp/bwlp-guacamole-ext.git
-cd bwlp-guacamole-ext/docker+cd bwlp-guacamole-ext/deployment/docker
 cp .env.example .env cp .env.example .env
 ``` ```
  
-Die meisten notwendigen Einstellungen setzen Sie in der Datei '.env'+Editieren Sie dort mindestens IP/Hostname der Variablen **SLX_CLIENT_LIST_URL**, damit diese auf Ihren Satellitenserver verweist.
-Editieren Sie dort mindestens die IP/Hostname der Variablen 'SLX_CLIENT_LIST_URL', damit diese auf Ihren Satellitenserver verweist.+
  
-Für den LDAP-Login müssen Sie noch die notwendingen LDAP_*-Variablen anpassen. Es gibt noch weitere Konfigurationsoptionen, falls nötig https://guacamole.apache.org/doc/gug/guacamole-docker.html#ldap-authentication .+Für den LDAP-Login müssen Sie noch die notwendingen **LDAP_***-Variablen anpassen. Es stehen weitere Konfigurationsoptionen zur Verfügung, falls nötig https://guacamole.apache.org/doc/gug/guacamole-docker.html#ldap-authentication .
  
-**Optional:** Falls Ihr LDAP-Server ein selbstsigniertes SSL-Zertifikat verwendet, ist es unter Umständen notwendig, dass Sie dieses in das Image importieren. Editieren Sie dazu die Datei 'Dockerfile' und passen die auskommentierten Zeilen an. Kopieren Sie dann das das notwendige Zertifikat z.B. ebenfalls unter './files'. Falls Sie kein spezielles Zertifikat benötigen, können Sie diesen Teil überspringen.+**Optional:** Falls Ihr LDAP-Server ein selbstsigniertes SSL-Zertifikat verwendet, ist es unter Umständen notwendig, dass Sie dieses in das Docker-Image importieren. Editieren Sie dazu die Datei 'Dockerfile' und passen die auskommentierten Zeilen an. Legen Sie dann das notwendige Zertifikat z.B. unter './files' ab. Falls Sie kein spezielles Zertifikat benötigen, können Sie diesen Teil überspringen.
  
 Kopieren Sie als nächstes das für Ihre Guacamole Version passende 'bwlp-guac-plugin' nach './files/extensions' Kopieren Sie als nächstes das für Ihre Guacamole Version passende 'bwlp-guac-plugin' nach './files/extensions'
Zeile 53: Zeile 56:
  
  
-## Apache Reverse Proxy einrichten+## Reverse Proxy einrichten
  
-Reverse Proxy-Konfiguration für Apache anlegen und entsprechende Module aktivieren+Im oben genannten Repository ist auch eine entsprechende Beispielkonfiguration für den Apache Webserver enthalten (*./deployment/apache2/*). Alternativ ist auch nginx als Webserver möglich. Weitere Infos dazu finden Sie in der \[\[https://guacamole.apache.org/doc/gug/|Apache Guacamole Dokumentation\]\].
  
 ``` ```
-# Apache Module aktivieren+# Apache installieren 
 +apt install apache2  
 + 
 +Module aktivieren
 a2enmod rewrite a2enmod rewrite
 a2enmod proxy_http a2enmod proxy_http
 a2enmod ssl a2enmod ssl
 a2enmod proxy_wstunnel a2enmod proxy_wstunnel
-``` 
- 
-Nachfolgender Inhalt in .conf datei einfügen 
  
-``` +# Konfiguration kopieren und aktivieren 
-vi /etc/apache2/sites-available/bwlehrpool-remote.conf+cp bwlp-guacamole-ext/deployment/bwlehrpool-remote.conf /etc/apache2/sites-available/bwlehrpool-remote.conf 
 +a2ensite bwlehrpool-remote.conf
 ``` ```
  
-**IP (10.9.8.7)** und **FQDN (bwlehrpool-remote.hs-xyz.de)** sind Platzhalter und müssen entsprechend angepasst werden: +Passen Sie **IP (10.9.8.7)** und **FQDN (bwlehrpool-remote.hs-xyz.de)** auf Ihre Umgebung an.
- +
-``` +
-<VirtualHost 10.9.8.7:80> +
-        ServerName bwlehrpool-remote.hs-xyz.de +
-        ServerAdmin webmaster@test.de +
- +
-        RewriteEngine On +
-        RewriteCond %{HTTPS} !=on +
-        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] +
-</VirtualHost> +
- +
- +
-<VirtualHost 10.9.8.7:443> +
-        ServerName bwlehrpool-remote.hs-xyz.de +
-        ServerAdmin webmaster@test.de +
- +
-        SSLEngine on +
-        SSLProtocol All -SSLv2 -SSLv3 +
-        SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt +
-        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key +
-         +
-        RewriteEngine  on +
-        RewriteRule    "^/guacamole"  "/" [R] +
- +
-        ProxyPass / http://10.9.8.7:8080/guacamole/ flushpackets=on +
-        ProxyPassReverse / http://10.9.8.7:8080/guacamole/ +
-        ProxyPassReverseCookiePath /guacamole / +
-         +
-        <Location /websocket-tunnel> +
-                Order allow,deny +
-                Allow from all +
-                ProxyPass ws://10.9.8.7:8080/guacamole/websocket-tunnel +
-                ProxyPassReverse ws://10.9.8.7:8080/guacamole/websocket-tunnel +
-        </Location> +
-        SetEnvIf Request_URI "^/tunnel" dontlog +
-        CustomLog  /var/log/apache2/guac.log common env=!dontlog +
-</VirtualHost> +
-```+
  
 ``` ```
 # Selbst signiertes Zertifikat erstellen (besser Let's Encrypt oder korrektes Hochschulzertifikat verwenden) # Selbst signiertes Zertifikat erstellen (besser Let's Encrypt oder korrektes Hochschulzertifikat verwenden)
 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
- 
-# Seite aktivieren: 
-a2ensite bwlehrpool-remote.conf 
  
 # Webserver neustarten # Webserver neustarten
Zeile 136: Zeile 99:
 ``` ```
  
-Dabei sollte eine json-Struktur herauskommen, die die Liste von Clients und Gruppen enthält. Verfügbare Clients müssen  im 'state: IDLE' sein und ein 'password' gesetzt haben, damit eine Verbindung möglich ist.+Dabei sollte eine json-Struktur herauskommen, die die Liste von Clients und Gruppen enthält. Verfügbare Clients müssen  im 'state: IDLE' sein und ein 'password' gesetzt haben, damit eine Verbindung möglich ist. 
  
 </WRAP> </WRAP>
Drucken/exportieren