Docker Compose Apache Guacamole
Pratique pour déployer rapidement Apache Guacamole dans Portainer en créant une pile (stack) à partir d’un fichier compose YAML.
Je pars du principe que vous maîtrisez un minimum Docker avec Portainer 😉
Apache Guacamole, c’est quoi ?
Apache Guacamole est une passerelle de bureau à distance sans client.
Il prend en charge les protocoles standards tels que VNC, RDP et SSH.
Nous l’appelons sans client, car aucun plugin ou logiciel client n’est requis.
Grâce au HTML5, une fois Guacamole installé sur un serveur, tout ce dont vous avez besoin pour accéder à vos bureaux est un navigateur Web.
Liens utiles
Installation
Manuelle, ou via Portainer.
“sudo” OU PAS “sudo” ? À vous de savoir. Personnellement, je suis sur un LXC Debian Proxmox, je travaille donc en “root”, pas besoin de “sudo” !
Manuelle
- Créer un dossier qui va contenir les différents fichiers et dossier pour notre environnement Guacamole…
mkdir guacamole
- Dans le dossier “guacamole”, créer le fichier “docker-compose.yml”…
touch docker-compose-yml
- Ouvrez maintenant “docker-compose.yml” pour l’éditer…
nano docker-compose.yml
- Voici le contenu du fichier “docker-compose.yml”, adaptez-le à votre environnement…
version: '3.8'
services:
guacamole_db:
container_name: guacamole_db
hostname: guacamole_db
image: mariadb:10.11
restart: always
volumes:
- ./guacamole_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=blablalinux
- MYSQL_DATABASE=guacamole_db
- MYSQL_USER=anyblabla
- MYSQL_PASSWORD=blabla
expose:
- 3306
guacd:
container_name: guacd
hostname: guacd
image: guacamole/guacd:latest
restart: always
volumes:
- ./guacd_drive:/drive:rw
- ./guacd_record:/record:rw
expose:
- 4822
guacamole:
container_name: guacamole
hostname: guacamole
restart: always
image: guacamole/guacamole:latest
depends_on:
- guacamole_db
- guacd
ports:
- 8080:8080
links:
- guacd
environment:
- GUACD_HOSTNAME=guacd
- MYSQL_HOSTNAME=guacamole_db
- MYSQL_DATABASE=guacamole_db
- MYSQL_USER=anyblabla
- MYSQL_PASSWORD=blabla
- REMOTE_IP_VALVE_ENABLED=true
Fichier compose également disponible sur ByteStash Blabla Linux.
Compose personnalisation
Dans “environment” du service “guacamole_db”…
- N’oubliez pas de personnaliser le mot de passe “root” pour MySQL…
- MYSQL_ROOT_PASSWORD=blablalinux
- N’oubliez pas de personnaliser le nom utilisateur pour MySQL…
- MYSQL_USER=anyblabla
- N’oubliez pas de personnaliser le mot de passe pour MySQL…
- MYSQL_PASSWORD=blabla
Les informations “environement” du service “guacamole_db” doivent être identiques que les informations “environment” du service “guacamole” !
- La variable “- REMOTE_IP_VALVE_ENABLED=” est à activer si vous utilisez un Proxy inverse…
- REMOTE_IP_VALVE_ENABLED=true
Bonus Compose personnalisation
- Pour activer la double authentification, il suffit d’ajouter cette variable en dessous de la variable “- REMOTE_IP_VALVE_ENABLED=true”…
- TOTP_ENABLED=true
Portainer
- Il suffit de créer une pile stack avec le nom de votre choix, ici, “guacamole”, et de coller le contenu du fichier Compose ci-dessus…
Vous pouvez lancer le container !
- Avec une installation manuelle, simplement être dans le répertoire “guacamole” et…
docker-compose up -d
- Avec une pile stack Portainer, un clic sur “Deploy the stack”…
L’identifiant et le mot de passe par défaut est : guacadmin
Manuelle/Portainer - Instructions communes
Il faut maintenant initialiser la base de données MySQL.
- Si vous n’êtes pas en “root”, passez-y…
sudo su
- Récupérer le script d’initialisation de la base de données MySQL…
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- Injecter le fichier de la base de données MySQL…
docker exec -i guacamole_db mysql --user anyblabla --password=blabla guacamole_db < initdb.sql
- La commande doit être adaptée à votre environnement…
--user anyblabla --password=blabla
Guacamole en fonctionnement
Je vous propose cette vidéo pour vous rendre compte du résultat…
Source : https://wiki.blablalinux.be/fr/docker-compose-apache-guacamole