Guacamole ist eine Webanwendung, welche es ermöglicht RDP, VNC und SSH Verbindungen über ein Webinterface zu nutzen. Es können Berechtigungsstrukturen für die Nutzung mit mehreren Accounts erstellt werden.

Vorraussetzungen:
– Aktueller Ubuntu LTS Server
– Installiertes Docker und Docker Compose

Schritt 1:
Verzeichnis für das Docker Compose Script erstellen:

mkdir -p ~/guacamole
cd guacamole

Schritt 2:
Docker Images herunterladen:

docker pull guacamole/guacamole:1.5.5
docker pull guacamole/guacd:1.5.5
docker pull mariadb:10.9.5

Schritt 3:
Datenbank Initialization-File erstellen:

docker run --rm guacamole/guacamole:1.5.5 /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

Schritt 4:
Nun wird das Docker Compose Script erstellt. Vorerst nur mit dem Datenbankcontainer.

nano docker-compose.yml
-----------------------
services:
  guacdb:
    container_name: guacamoledb
    image: mariadb:10.9.5
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: '8xLF8EQ4GLN9gOfwoes36xHal'
      MYSQL_DATABASE: 'guacamole_db'
      MYSQL_USER: 'guacamole_user'
      MYSQL_PASSWORD: '2wBPEHT8Ft72K837HHW4YVoHn'
    volumes:
      - './db-data:/var/lib/mysql'

Schritt 5:
Nun den Container starten:

docker-compose up -d

Schritt 6:
Jetzt wird das SQL-Script in den Datenbank Container kopiert:

docker cp initdb.sql guacamoledb:/initdb.sql
--------------------------------------------	
docker exec -it guacamoledb bash
cat /initdb.sql | mysql -u root -p guacamole_db <insert MYSQL_ROOT_PASSWORD as defined earlier>
--------------------------------------------	
exit

Schritt 7:
Nun muss der Datenbankcontainer wieder gestoppt werden:

docker-compose down

Schritt 8:
Nun kann der restliche Inhalt in die docker-compose.yml Datei kopiert werden. Die Datei sieht dann in etwa so aus:

services:
  guacdb:
    container_name: guacamoledb
    image: mariadb:10.9.5
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: '8xLF8EQ4GLN9gOfwoes36xHal'
      MYSQL_DATABASE: 'guacamole_db'
      MYSQL_USER: 'guacamole_user'
      MYSQL_PASSWORD: '2wBPEHT8Ft72K837HHW4YVoHn'
    volumes:
      - './db-data:/var/lib/mysql'
  guacd:
    container_name: guacd
    image: guacamole/guacd:1.5.5
    restart: unless-stopped
  guacamole:
    container_name: guacamole
    image: guacamole/guacamole:1.5.5
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      GUACD_HOSTNAME: "guacd"
      MYSQL_HOSTNAME: "guacdb"
      MYSQL_DATABASE: "guacamole_db"
      MYSQL_USER: "guacamole_user"
      MYSQL_PASSWORD: "2wBPEHT8Ft72K837HHW4YVoHn"
      TOTP_ENABLED: "true"
      WEBAPP_CONTEXT: "ROOT"
    depends_on:
      - guacdb
      - guacd
volumes:
  db-data:

Schritt 9:
Nun die Container gemeinsam starten:

docker-compose up -d

Zum updaten von Guacamole können einfach die Versionsnummern für die Container „guacd“ und „guacamole“ angepasst werden.

Von NRTX

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert